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
速记字符类)。(刚刚选中,)