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

标签 java regex string

我尝试了很多方法来匹配某个字符串,但事实证明我的努力失败了。

我需要一个模式来匹配字符串中的所有单词。第一个词必须是 出现在它与其余单词匹配之前。另外,后面的词 第一个单词应该有一个逗号,最后一个单词除外。

示例

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+)(?:,|$)

RegEx Demo

(?:\bvar\b|\G) 匹配 var\G ,在上一个匹配的末尾断言位置或第一个匹配的字符串的开头。

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

关于java - 正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649608/

相关文章:

java - 期望多个 ResultSet,但只得到一个

java - 解码给出空值的嵌套 xml 数据

c# - 使用 Rijndael 在 Java 中加密并在 C# 中解密

c - 如何将数据从字符串复制到结构体中的字段

java - 从字符串中返回两个子字符串

java - 在Domino Notes中用java添加图片

java - 用正则表达式分割字符串

java - 字符串正斜杠被替换

ruby - 从字符串中删除第一个字符的最简单方法是什么?

python - 具有多个列表的正则表达式