标签:java regex regex-lookarounds
我发现了一个类似的问题here.但是我没有得到它的工作:
我有一个像“my_token_string”这样的字符串,需要一个正则表达式来返回标记“my_”,“_ token_”和“_string”.
请注意,我无法更改java代码,因为它是另一个软件的一部分.我唯一能做的就是指定要捕获的模式和组:-)
这是我测试过的:
String p = "(?=(_[^_]*_?))";
int group = 1;
String test = "my_token_string";
Matcher m = Pattern.compile(p).matcher(test);
while (m.find()) {
System.out.println(m.group(group));
}
但是当然这只返回令牌“_token_”和“_string”.
解决方法:
您可以尝试使用“(?=((^ | _).?(_ | $)))”.由于组号使用1.
它将令牌以_或输入开头(^)开头,并以_或输入结束($)结束.代替 . ?你可以使用[^ _],但我更喜欢这个版本.
标签:java,regex,regex-lookarounds 来源: https://codeday.me/bug/20190613/1229725.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。