正则表达式写法?

前端之家收集整理的这篇文章主要介绍了正则表达式写法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问题1:

最近碰到一个问题,就是如何根据两端的字符来匹配相应的字符串,正则表达式如何写

答案是用(.*?)

分析:

例如,\\[(.*?)\\]这个正则表达式匹配两端是[]符号的字符串

其中一点代表任意字符,星号代表字符串长度,?表示限制贪婪匹配

以下是有?的情况下,即当第一次匹配到 ] 停止,开始查找 [,进行第二次匹配查找。

String regEx = "\\[(.*?)\\]";

String str = "abc[123]def[ghi]456";

Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);

System.out.println(matcher.matches());

while( matcher.find() )
{
	System.out.println( "" + matcher.group() );
}

结果:[123]
[ghi]

对比下面是无?的情况,即贪婪匹配。
String regEx = "\\[(.*)\\]";

String str = "abc[123]def[ghi]456";

Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);

System.out.println(matcher.matches());

while( matcher.find() )
{
	System.out.println( "" + matcher.group() );
}

结果:[123]def[ghi]

猜你在找的正则表达式相关文章