我需要一个正则表达式来查找我的模式的所有匹配项 .
文字是这样的:
"someother text !style_delete [company code : 43ev4] between text !style_delete [organiztion : 0asj9] end of line text"
我想找到该模式的所有匹配项:
!style_delete [.*]
我试过这样的:
Pattern pattern = Pattern.compile("!style_delete\\s*\\[.*\\]");
有了这个匹配文本就像这样:
!style_delete [company code : 43ev4] between text !style_delete [organiztion : 0asj9]
但我预计如下:
match 1 : !style_delete [company code : 43ev4]
match 2 : !style_delete [organiztion : 0asj9]
请帮助我,java中的正则表达式将获得以上输出 .
3 回答
edit
也许Trinimon的答案模式更优雅一点 . 我用正则表达式更新了正则表达式 .
这是因为
.*
贪婪 . 改为使用它:这意味着:匹配括号中的所有内容,不包括结束
]
.或者使
[]
之间的内容非贪婪:您需要使用non-greedy匹配:
在您的情况下,模式是:
证明(Java 7):
链接到证据:http://ideone.com/Qtymb3