Regex Reg Ex无法识别特殊字符

Regex Reg Ex无法识别特殊字符,regex,Regex,我有一个登记证 \b\d{7}PM\w{2}\d*\b 因此,基于reg ex,它应该只接受 7个数字+PM+2个字母数字+任意长度的数字。因此,它将分别接受这样的内容,因为它在开始和结束时都有\b 1032213PM39849723 我的问题是,为什么上面的正则表达式接受 1032213PM39849723<\test> 或 而不是 A1032213PM39849723 或 这真的让我很困惑为什么会发生这种情况,如果要在正则表达式中进行任何更改,以便在结尾或开头不接受任

我有一个登记证

\b\d{7}PM\w{2}\d*\b
因此,基于reg ex,它应该只接受
7个数字+PM+2个字母数字+任意长度的数字。因此,它将分别接受这样的内容,因为它在开始和结束时都有\b

1032213PM39849723  
我的问题是,为什么上面的正则表达式接受

1032213PM39849723<\test>

而不是

A1032213PM39849723


这真的让我很困惑为什么会发生这种情况,如果要在正则表达式中进行任何更改,以便在结尾或开头不接受任何其他字符,请告诉我。这取决于您使用的正则表达式函数的风格,但通常正则表达式并不意味着整个字符串必须由这个和仅此组成,这仅仅意味着字符串的某些部分必须与此匹配。如果要匹配整个字符串,请添加开始和结束锚定:

^\d{7}PM\w{2}\d*$

你把德塞兹说的话弄糊涂了。:)+1为什么A1032213PM39849723不被接受?字符串的某些部分也跟在regex后面(在A之后)@User好吧,查一下
\b
的确切含义:@deceze我想我已经明白了,但我只想澄清一下\b仅适用于表示开头或结尾的字符应为\w(字母数字)的单词,因为<不是字母数字单词,因此在使用\b时它是有效的。。我说的对吗?@User基本上是的。“>1”中有单词边界,但“A1”中没有。“A1”是一个连续的“单词”。
A1032213PM39849723
1032213PM39849723K
^\d{7}PM\w{2}\d*$