正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量

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, gh 除外

【问题讨论】:

您尝试了什么以及您需要什么?你的意思是需要打印'var'? 发表你的最大努力,并解释为什么它没有按预期工作。 【参考方案1】:

您可以使用此正则表达式来匹配捕获组中的单词:

(?:\bvar\b|\G)\s*(\w+)(?:,|$)

RegEx Demo

(?:,|$) 将在捕获组后匹配逗号或字符串结尾。

【讨论】:

【参考方案2】:

见Demo

^var\s+(\w+,\s*)*\w+$

【讨论】:

以上是关于正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量的主要内容,如果未能解决你的问题,请参考以下文章

Python正则表达式,匹配最后一个单词

仅当两者之间存在某些文本时,正则表达式才匹配星号

正则表达式用来根据某种匹配模式寻找字符串中的某些单词。

正则表达式:匹配空格之间的单词

使用正则表达式匹配多个逗号分隔的单词

正则表达式在 html 锚标记内不匹配 [重复]