使用正则表达式提取文本模式

时间:2012-10-08 07:13:33

标签: regex vb.net

我想从不同页面的输入字符串中提取代码。示例代码是 '110-PT-0988'。

此RegExp适合其他可能的情况'^\d{3}-[A-Z]{1,6}-\d{4}[A-Z]{0,2}$'

我想返回一个包含输入字符串中代码的字符串变量,例如输入字符串

'Code part: xx Code No: 120-PXT-2234X System Process .....xyz blah blah'.

我希望返回字符串为'120-PXT-2234X'

2 个答案:

答案 0 :(得分:3)

问题在于anchors ^$。它们匹配字符串的开头和结尾,因为你的模式位于字符串的中间,所以它找不到它。

word boundary的锚\b,在这里是更好的选择,请尝试

\b\d{3}-[A-Z]{1,6}-\d{4}[A-Z]{0,2}\b#

here on Regexr

答案 1 :(得分:0)

如果要在较大的字符串中匹配此类模式,则需要删除锚点(^$):

\d{3}-[A-Z]{1,6}-\d{4}[A-Z]{0,2}

这样正则表达式匹配与模式匹配的任何子串