正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量
Posted
技术标签:
【中文标题】正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量【英文标题】:Regex pattern to match words inbetween the first and last token with the first word being constant 【发布时间】:2015-09-18 10:20:25 【问题描述】:我尝试了很多方法来匹配某个字符串,但我的努力被证明是失败的。
我需要一个模式来匹配字符串中的所有单词。第一个词必须是 在它匹配剩余的单词之前出现。另外,跟在后面的话 第一个单词应该有逗号,除了最后一个单词。
示例
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
除外
【问题讨论】:
您尝试了什么以及您需要什么?你的意思是需要打印'var'? 发表你的最大努力,并解释为什么它没有按预期工作。 【参考方案1】:您可以使用此正则表达式来匹配捕获组中的单词:
(?:\bvar\b|\G)\s*(\w+)(?:,|$)
RegEx Demo
(?:,|$)
将在捕获组后匹配逗号或字符串结尾。
【讨论】:
【参考方案2】:见Demo
^var\s+(\w+,\s*)*\w+$
【讨论】:
以上是关于正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量的主要内容,如果未能解决你的问题,请参考以下文章