正则表达式上的两个数字和文本,提取第二个数字和文本

时间:2017-12-10 16:49:27

标签: c# regex

我的文字如下:

Location # 06296 1829 GOLIAD RD.

我想提取第二个数字和文字。所以我试过这个正则表达式:

"(\d{2,})??[\w.\s]*\s+(RD)\s*"

我一直在06296 1829 GOLIAD RD

我想要1829 GOLIAD RD

我怎样才能在文本前面找到数字,而不是更多。

谢谢!

2 个答案:

答案 0 :(得分:0)

试用this表达式:

(?<=Location # \d{5} )(\d*)\s(.*)

它给你这个结果:

  

完全匹配17-32 1829 GOLIAD RD.

     

第1组.17-21 1829

     

第2组.22-32 GOLIAD RD.

此表达式使用正向前瞻表达式来过滤掉值的Location #部分,并为您提供两个结果组:行尾的字符串数。

答案 1 :(得分:0)

如果你想要你之前的文本中的数字,你可以使用positive lookahead,其后面是字符,空格或点,直到字符串结尾。

\d+(?=[A-Z\s.]+$)

  • 匹配一个或多个号码\d+
  • 积极向前看(?=
  • 断言大写字符或空格的字符范围或一次或多次点[A-Z\s.]+
  • 直到字符串$
  • 结尾