2

我想从不同页面的输入字符串中提取代码。示例代码是“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'

4

2 回答 2

3

问题是锚点 ^$。它们匹配字符串的开头和结尾,并且由于您的模式位于字符串的中间,它不会找到它。

单词边界的锚\b,在这里会是一个更好的选择,试试

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

在 Regexr 上查看

于 2012-10-08T07:19:00.227 回答
0

如果你想在一个更大的字符串中匹配这样的模式,那么你需要删除锚(^$):

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

这样,正则表达式匹配任何匹配模式的子字符串

于 2012-10-08T07:19:17.010 回答