Skip to main content
 首页 » 编程设计

python之只要第一个字符不是数字,就可以使用正则表达式匹配任意数量的字符

2024年08月25日31JeffreyZhao

我正在尝试找出如何使用正则表达式来匹配任意数量的字符,只要第一个字符不是数字即可。如果我正在检查的字符串部分(结尾)中没有值,我也希望它匹配。

如果我这样做:

Pattern = re.compile (value + r"\D.*") 

仅当字符串在匹配值之后至少有一个(非数字)值时才有效。

如果我这样做:

Pattern = re.compile (value + r"\D?.*") 

即使第一个值是数字,它也会匹配。

我试图找到零与字符串末尾任何值的匹配项,只要第一个值不是数字即可。

例子:

Check "abc123" against:

"abc123" : Match
"abc123ab" : Match
"abc1234" : Not a match
"abc1234a" : Not a match
"abc123a4" : Match

请您参考如下方法:

听起来您想要一个“否定先行断言”(搜索该术语 here)。

re.compile(value + '(?!\d)') 

字面意思是“不(直接)跟一个数字”。


或者,不使用正则表达式(基本思想取自 TigerhawkT3):

not teststring[len(value):][:1].isdigit() 

这假定测试字符串以值开头(如果不能保证,您必须检查它)。