【发布时间】:2017-03-03 20:09:35
【问题描述】:
有点正则表达式新手...对不起。我有一份带有 IEEE 风格引文或括号中数字的文档。它们可以是一个数字,如 [23],或多个,如 [5, 7, 14],或一个范围,如 [12-15]。
我现在拥有的是[\[|\s|-]([0-9]{1,3})[\]|,|-]。
这是捕获单个数字和组中的第一个数字,但不捕获后续数字或范围内的任何一个数字。
然后我需要在 \1 这样的表达式中引用该数字。
我希望这很清楚!我怀疑我不懂 OR 运算符。
【问题讨论】:
-
|inside[...]匹配文字管道符号。 -
它似乎破坏了我的正则表达式......我现在拥有的是 "[[|\s|-]([0-9]{1,3})[]|,|- ]"
-
是的,你的模式一团糟。发布您使用正则表达式的代码,以及示例输入和预期输出。
-
可以接受像 [1, 3-5] 这样的组合吗? @PeterBasch
-
@MohaMad,是的,这是可以接受的。在一个范围内,我只需要匹配第一个数字(连字符之前的那个)。这个想法是我将数字链接到参考书目中的特定参考。再次感谢您帮助我解决这个问题!