我有一组字符串,我需要从中提取一组数字。在下面的模式中,我尝试选择zzzz
处的值。
xxxx - yyyy - aaaa - zzzz - any text here - any text here <= Example #1
xxxx - yyyy - zzzz - any text here - any text here <= Example #2
我知道以下有关数据的信息:
我原本以为我可以在正则表达式(?!1111)\d{4}
中使用否定前瞻,因为序列1111
通常出现在我想要捕获的四位数之前。
432 - 1111 - 2300 - 存储
411 - 1111 - 6483 - 学校
然而情况并非如此,如下所示。
321 - StorageZone - 1710 - 仓库
此外,有时1111
处于我想捕捉的位置。
002 - 1111 - 1111 - 机房(这里我想选择111,因为它是1111的第二个实例)
981 - 0110 - 1111 - 地下室(这里1111是我需要的号码)
所以我很困惑如何捕获zzzz
的值并且可以使用一些正则表达式的建议。感谢。
答案 0 :(得分:0)
在JavaScript表示法中,它将是这样的:
^\d{3} - [a-zA-Z0-9]{1,}?( - .*?)?? - (\d{4})( - [^0-9]*){1,2}$
你将需要第二个捕获组
这里的想法是你需要字符串中的最后 4位数字。
您可以使用此DEMO
进行测试