我尝试了很多方法来匹配某个字符串,但事实证明我的努力失败了。
我需要一个模式来匹配字符串中的所有单词。第一个词必须是 出现在它与其余单词匹配之前。另外,后面的词 第一个单词应该有一个逗号,最后一个单词除外。
示例
String str = "var a, n,d, e, g, h"
在此示例中,var
必须在模式与其余字符(a, n,d, e, g, h)
匹配之前出现。字符可以多于示例中的字符,可以是(a, n, d, e, g, h, k, l,...)
。
已编辑
我尝试过这样的事情
String p = "((\\w+),[|\\s+]?)";
并匹配第一组。它只显示 a, n, d, e, g
,但 h
最佳答案
您可以使用此正则表达式来匹配捕获组中的单词:
(?:\bvar\b|\G)\s*(\w+)(?:,|$)
(?:\bvar\b|\G)
匹配 var
或 \G
,在上一个匹配的末尾断言位置或第一个匹配的字符串的开头。
(?:,|$)
将匹配捕获组后的逗号或字符串结尾。
关于java - 正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649608/