【问题标题】: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'?
  • 发表你的最大努力,并解释为什么它没有按预期工作。

标签: java regex string


【解决方案1】:

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

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

RegEx Demo

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

【讨论】:

    【解决方案2】:

    Demo

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2015-09-08
      相关资源
      最近更新 更多