Java中正则表达式的应用
首先定义两个字符串:
String str;
String regex;
其中str是要作判别的字符串;regex是一个标准的正则表达式, 当然, 它也是一个字符串。
一般的, 如果想判别一个字符串是否匹配一个正则表达式, 可以这样做:
str = "string";
regex = "s. *";
System. out. println(str. matches(regex));
matches的返回值是一个布尔boolean值。
还可以这样用:
Pattern pattern = Patternpile(regex);
Matcher matcher = pattern. matcher(str);
System. out. println(matcher. matches());
matches的返回值异样是一个布尔boolean值。
下面的状况也许并不是你想要的结果:
str = "string\nstring";
regex = "s. *";
System. out. println(str. matches(regex));
结果是false。
这里的点. 并没有匹配行结束符\n。
也许你希望用一个含有表示行结束符的正则表达式来做匹配, 但是, 你又知道字符串中有多少个行结束符以及它们的地位呢?
其实, . 的匹配规则是可以更改的:
int flags = Pattern. DOTALL;
Pattern pMulti = Patternpile(regex, flags);
Matcher mMulti = pMulti. matcher(str);
System. out. println(mMulti. matches());
正如所料, 结果是true。
也可以指点过多个标志:
flags = Pattern. DOTALL | Pattern. MULTILINE;
各个标志之间只需求用数线|分隔即可。
更多的知识, 请参照JDK的java. util. regex. Pattern局部的说明, 很详细。文章由 feger.tk 斐格淘宝旗舰店 整理,收集辛苦,希望能保留出处。