寻找正确的正则表达式

时间:2017-08-23 22:06:17

标签: regex python-3.x

我想找到的是正确的正则表达式

import re

line = "The Boeing AH-64 Apache is an American four-blade,"

print(re.findall('(A.+)\s', line))

这是我想要的

    ['AH-64', 'Apache' , 'American']

这就是我得到的

['AH-64 Apache is an American']

1 个答案:

答案 0 :(得分:1)

您可以在\b之前使用字边界(A),然后匹配其后的一个或多个非空白字符(\S+):

import re
line = "The Boeing AH-64 Apache is an American four-blade,"
print(re.findall(r'\bA\S+', line))

注意:要将A作为整个词匹配,请将+(1次或多次出现)替换为*(0次或更多次出现):{ {1}}。我假设你想匹配更长的序列。

或者,由于r'\bA\S*'匹配所有符号和标点符号,您可以稍微精确一下你的正则表达式并使用

\S

其中print(re.findall(r'\bA[\w-]+', line)) 匹配1个或多个字母,数字,[\w-]+_符号。

请参阅显示-输出的Python demo