当前位置:  开发笔记 > 编程语言 > 正文

正则表达式中的字符串错误

如何解决《正则表达式中的字符串错误》经验,为你挑选了2个好方法。

我有简单的正则表达式

"\".*\""

对我来说,它说选择"和"之间的所有内容,但它也会捕获

"text") != -1 || file.indexOf(".exe"

对我来说,它的两个字符串,正则表达式的一个.我怎么能让正则表达式看到它的两个字符串?

PS我正在使用Java.



1> Tomalak..:

这是非贪婪的形式:

".*?"

*?意思是:"匹配尽可能少",而*单独的意思是"匹配尽可能多地".

后者基本上一直持续到字符串结束,一个接一个地给予字符,所以最终"可以匹配.这就是为什么你得到字符串中第一个和最后一个引号之间的所有内容.

// for the sake of completeness: Java would need this pattern string
"\".*?\""


实际上,"[^"\ r \n]*"效率更高,做法更好.请参阅我的文章,关于在http://www.regular-expressions.info/dot.html上谨慎使用懒字点.

2> Paul Tomblin..:

正则表达式是"贪婪的".你想要做的是从比赛中间排除引号,比如

"\"[^\"]*\""

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有