正则表达式符号

[]为或者的关系,{5}为5个相同部分,{4-10}为4到10重复的内容,如果为/abc/匹配的是abc,如果为/[abc]/匹配的是a或者b或者c


*表示匹配0-无穷                       .表示匹配单字符
+表示匹配1-无穷                       ?表示前面子表达式的零次或一次

$表示匹配输入字符串的结尾位置         ^表示匹配输入字符串的开始位置

\d匹配一个数字字符,等价于 [0-9]。      \D匹配一个非数字字符,等价于 [^0-9]

[a-z] 字符范围,匹配a到z小写字母字符  [^a-z]负值字符范围,匹配不在a到z的字符

[A-Z] //匹配所有的大写字母             [a-zA-Z] //匹配所有的字母

[abc]可以匹配 plain中的 a              [^abc] 可以匹配 plain 中的p

\s 即匹配一个空白字符                 \S匹配一个非空白字符

\w即[a-zA-Z0-9_]匹配字母数字和下划线  \W匹配除字母数字下划线之外的字符


实例:如何让一个文本中所有英文单词的首字母大写

var text="akdklsjd   年后akddd ddkjldjks dd   akkkNIkk al  ";
var reg=/(^|\s+)\w/gm;            //+为1到多个,*为0到多个
var desText=text.replace(reg,function(s){
    return s.toUpperCase();
});
console.log(desText);


注:对于replace(reg,replaceText);中replaceText可以为文本,也可以为函数。

如果replaceText为函数,对于reg中的每个匹配都会调用该函数,它返回的字符串将作为替换的文本,该函数的第一个参数为匹配的字符串,接下来的参数为匹配的子字符串。


//第一个为字母,后面的可为字母、数字、下划线,总长度为10-15
var reg=/^[a-zA-Z][a-zA-Z0-9_]{9,14}$/;
//var reg=/^[a-zA-Z]\w{9,14}/;  //或者这样也行
console.log(reg.test("djakjdhdjahdddd"));

//截取字符串abcdefg的efg
//substr(start,length),而substring(start,end);
var str="abcdefg";
if(/efg/.test(str)){
    var efg=str.substr(str.indexOf("efg"),3);
    console.log(efg);
}


经典解析:

Java程序中处理:

^\\[(/[^/\\s\\[\\]]+)+]$              //此为目录结构,形如[/zhouRepo/java]

以[开头,以]结尾,故为^\\[    ]$形式
对于/zhouRepo这种形式的,其不可含有[ ]和空格 ,此为(/[^/\\s\\[\\]]+) 表示其为不为\s空格,\\[不为[,\\]不为]的字符且字符有1到多个,且有多个这种结构 最后加上 +

Java代码:
if(Pattern.matches("^\\[(/[^/\\s\\[\\]]+)+]$",str)){ //匹配目录,且目录不含空格,形如  [/test/Java]
            System.out.println("匹配目录");                     //以[开头,且以]结尾,中间不含有[]空格
            
        }



对于:http://dev.test.cmri.cn/issues/rest/api/2/*

其正则为:^http:\/\/dev\.test\.cmri\.cn\/issues\/rest\/api\/.*


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值