我希望匹配在双倍空格之前出现的任何四位数字和#34;来自"离。
2356 from
1524 from
1223 from
表达式\d{4} from
从"中提取数字,双倍空格和单词"但理想情况下我只想得到那四个数字(没有尾随空格和单词"来自& #34;)并且仅在它们不是带有连字符的数字的一部分的情况下,例如:
2536 from
= 2536
8574 from
= 8574
35-6655 from
=不匹配3652
=不匹配(没有字的数字"来自"数字后面)答案 0 :(得分:2)
您需要在正则表达式中使用(...)
运算符分组:
(\d{4}) from
然后从匹配中提取组#1。或使用(?=...)
进行零宽度前瞻匹配。
\d{4}(?= from)
为避免连字符后面的匹配,您可以使用零宽度负面后视。
(?<!-)\d{4}(?= from)
说明:
(?<!_)_______________
负零宽度后视......
如果找到____-________________
,则"-"
...不匹配
______\d{4}__________
四位数
___________(?=______)
正零宽度前瞻...
如果找到______________ from_
,则" from"
...匹配
答案 1 :(得分:0)
您可以([0-9]{4}) from
更多请参阅here