regex - 姓名捕获,需要号码列表

标签 regex

我需要生成列表中数字的命名捕获

源数据示例

This is a comment on line 1
Here is another Comment Line 2
Log ID 1234,5555,2342

使用:(?<id>(\d+)*)我将获取结果

1
2
1234
5555
2342

但是这回升了 12错误。我需要它来拾取仅记录 ID 后的元素。

我正在寻找一个将返回的正则表达式

1234
5555
2342

在名为 id 的命名组中

最佳答案

如果您的语言支持可变长度lookbehinds,您应该能够使用以下内容:

(?<=Log ID.*)(?<id>\d+)

我还对您的原始正则表达式进行了一些修改,因为我并没有真正看到命名捕获组内的附加捕获组或嵌套重复的意义 ((\d+)* 相当于 (\d*),但我认为您实际上需要 \d+,因此它要求您匹配至少一位数字)。

如果您无法使用可变长度后向查找(大多数语言),那么您可能需要分两步执行此操作。首先将任何行与“日志 ID”匹配,然后查找这些行中的数字。

关于regex - 姓名捕获,需要号码列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339247/

相关文章:

c# - 字母数字和 + 字符的正则表达式

regex - TRegex.Match 从不​​匹配空字符串

python - 正则表达式 python 将原始数据附加到字符串变量

javascript - 将主页 url 与正则表达式匹配

javascript - 如何执行此正则表达式命令?

regex - Linux 的 "D210"的正则表达式?

regex - Javacc 正则表达式匹配除某些字符串之外的所有字符串

regex - Perl 正则表达式捕获组和重新排列模式

python - 匹配所有的正则表达式模式,并在找到特定单词时返回 null

java - 在两个标签之间以常规方式解析?