Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的常量字符串加正则表达式_Python_Regex - Fatal编程技术网

python中的常量字符串加正则表达式

python中的常量字符串加正则表达式,python,regex,Python,Regex,我只想检查一行是否以一个常量表达式加上一个数字开头 然后,它可以区分像这些线 line blablabla line1 blablabla line2 blablablaxag line3 askdjfoqwuerulksdfjl ... 这可能很容易,但我一直在尝试不同的可能性,但仍然不起作用 我的尝试 if str.startswith('line'+'[0-9]') 或 谢谢您可以使用re.match re.match('line' + r'\d', st) 您可以使用re.fin

我只想检查一行是否以一个常量表达式加上一个数字开头

然后,它可以区分像这些线

line blablabla
line1 blablabla
line2 blablablaxag
line3 askdjfoqwuerulksdfjl
...
这可能很容易,但我一直在尝试不同的可能性,但仍然不起作用

我的尝试

if str.startswith('line'+'[0-9]') 


谢谢

您可以使用
re.match

re.match('line' + r'\d', st)

您可以使用
re.findall
获取以您的条件开头的每一行(以及内容)

>>> re.findall('line\d.*', s)
['line1 blablabla',
 'line2 blablablaxag',
 'line3 askdjfoqwuerulksdfjl']
如果你只需要线条和数字

>>> re.findall('line\d', s)
['line1', 'line2', 'line3']

您可以使用
startswith
和以下命令在不使用正则表达式的情况下实现这一点:


这是可能的,因为
是一个常量表达式。有必要进行
和len(s)>4
检查,以确保
行之后至少有一个字符

根据示例输入判断,行号前缀与行的其余部分之间应该有一个空格字符。下面的正则表达式模式将匹配以“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
输出

line1 blablabla line222 line12 blablablaxag 第1行布拉布拉布拉 第222行 第12行Blaxag 请注意,第一个str被排除在外,因为它以行开头,但后面没有数字。第四个字符串被排除在外,因为它以一行开头,后跟一个数字,但在空白之前有一个非数字

如果以“line”开头但不后跟数字的字符串有效(示例中的第一个字符串),则可以将模式更改为
r'line\d*(\W |$)'

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
line1 blablabla line222 line12 blablablaxag