Regex 我如何匹配这个正则表达式

Regex 我如何匹配这个正则表达式,regex,Regex,我需要匹配此模式:Var0Pt0其中第一个数字的范围为0-9,第二个数字的范围为0,2,7。这些字母是不变的。有什么想法吗 它应该与单词完全匹配,而不是说abcVar0Pt0bbs (Var\dPt\d)似乎不是这样的您可以使用a作为第二个数字,并使用锚定: ^Var\dPt[027]$ 看 [027]匹配0、2或7,和^将匹配锚定在字符串的开头,而$将匹配锚定在字符串的结尾。您可以使用a作为第二个数字,并使用锚定: ^Var\dPt[027]$ 看 [027]匹配0、2或7、和^将匹配锚定

我需要匹配此模式:
Var0Pt0
其中第一个数字的范围为0-9,第二个数字的范围为0,2,7。这些字母是不变的。有什么想法吗

它应该与单词完全匹配,而不是说
abcVar0Pt0bbs

(Var\dPt\d)
似乎不是这样的

您可以使用a作为第二个数字,并使用锚定:

^Var\dPt[027]$

[027]
匹配
0
2
7
,和
^
将匹配锚定在字符串的开头,而
$
将匹配锚定在字符串的结尾。

您可以使用a作为第二个数字,并使用锚定:

^Var\dPt[027]$


[027]
匹配
0
2
7
、和
^
将匹配锚定在字符串的开头,而
$
将匹配锚定在字符串的结尾。

并且根据regex实现是否良好(即Unicode感知),您可能希望将
\d
扩展到
[0-9]
以避免意外匹配更多内容。@Joey:JS中,
\d
=
[0-9]
。Java中,没有
(?U)
UNICODE\U字符类标志,
\d
=
[0-9]
。Python中,没有
re.UNICODE
\d
=
[0-9]
。在PHP中,没有
/u
修饰符,
\d
=
[0-9]
。如果要在.NET中使用正则表达式,这是不必要的,
RegexOptions.ECMAScript
标志将完成此操作。在Python 3.x中,应该处理此问题。如果要在编码环境之外使用,是的,
\d
最好替换为
[0-9]
.Wiktor:我只是在大多数情况下都希望事情是明确的,因为他们没有要求特定的regex实现,我相当肯定他们不知道可能有差异,这就是我指出的原因。当然,像
\w
\b
这样的事情要糟糕得多(尽管在这里不相关)。我之所以使用
\d
,是因为它是在原始模式中使用的(因此,我猜测它不是像MySQL或Bash那样的regex风格,不支持
\d
速记字符类)。(刚刚检查,)并且根据regex实现是否良好(即Unicode感知),您可能希望将
\d
扩展到
[0-9]
以避免意外匹配更多内容。@Joey:在JS中,
\d
=
[0-9]
。在Java中,没有
(?U)
UNICODE\U字符类标志,
\d
=
[0-9]
。在Python中,没有
re.UNICODE
\d
=
[0-9]
。在PHP中,没有
/u
修饰符,
\d
=
[0-9]
。如果要在.NET中使用正则表达式,这是不必要的,
RegexOptions.ECMAScript
标志将完成此操作。在Python 3.x中,应该处理此问题。如果要在编码环境之外使用,是的,
\d
最好替换为
[0-9]
.Wiktor:我只是在大多数情况下都希望事情是明确的,因为他们没有要求特定的regex实现,我相当肯定他们不知道可能有差异,这就是我指出的原因。当然,像
\w
\b
这样的事情要糟糕得多(尽管在这里不相关).我之所以使用
\d
,是因为它是在原始模式中使用的(因此,我猜测它不是像MySQL或Bash那样的正则表达式风格,不支持
\d
速记字符类)。(刚刚选中,)