2024-04-19 19:37:02 发布
网友
我只想检查一行是否以一个常量表达式加上一个数字开头
然后它对像这样的线有区别
line blablabla line1 blablabla line2 blablablaxag line3 askdjfoqwuerulksdfjl ...
这可能很容易,但我一直在尝试不同的可能性,仍然没有成功
我的尝试
或者
if str.startswith('line'+'/d')
谢谢
您可以使用startswith和^{}在不使用regex的情况下实现这一点:
startswith
s = "line3 askdjfoqwuerulksdfjl" if s.startswith("line") and len(s) > 4 and s[4].isdigit(): print("Found")
见demo
这是可能的,因为您的line是一个常量表达式。必须进行and len(s) > 4检查,以确保line后面至少有1个字符。在
line
and len(s) > 4
根据您的示例输入判断,应该有一个空格字符将行号前缀与行的其余部分分开。下面的regex模式将匹配以“line”开头、后跟一个或多个数字、后跟空白字符或行尾的字符串。在
import re for str in 'line blablabla', 'line1 blablabla', 'line222', 'line12 blablablaxag', 'line12f blablablaxag', 'no line': if re.match(r'line\d+(\W|$)', str): print str
输出
请注意,第一个str被排除在外,因为它以line开头,但后面没有数字。第4个字符串被排除在外,因为它以行开头,后跟一个数字,但空格前面有一个非数字。在
如果以“line”开头但后面没有数字的字符串是有效的(示例中的第一个字符串),那么可以将模式更改为r'line\d*(\W|$)'
r'line\d*(\W|$)'
您可以使用re.match
re.match
re.match('line' + r'\d', st)
您可以使用} 在不使用regex的情况下实现这一点:
startswith
和^{见demo
这是可能的,因为您的
line
是一个常量表达式。必须进行and len(s) > 4
检查,以确保line
后面至少有1个字符。在根据您的示例输入判断,应该有一个空格字符将行号前缀与行的其余部分分开。下面的regex模式将匹配以“line”开头、后跟一个或多个数字、后跟空白字符或行尾的字符串。在
输出
^{pr2}$请注意,第一个str被排除在外,因为它以line开头,但后面没有数字。第4个字符串被排除在外,因为它以行开头,后跟一个数字,但空格前面有一个非数字。在
如果以“line”开头但后面没有数字的字符串是有效的(示例中的第一个字符串),那么可以将模式更改为
r'line\d*(\W|$)'
您可以使用
re.match
相关问题 更多 >
编程相关推荐