Python 用正则表达式提取句子的名称
我对正则表达式的语法非常陌生,我已经读过一些关于libary的文章。我试图从一个简单的句子中提取名字,但我发现自己遇到了麻烦,下面我举了一个我所做的例子Python 用正则表达式提取句子的名称,python,regex,Python,Regex,我对正则表达式的语法非常陌生,我已经读过一些关于libary的文章。我试图从一个简单的句子中提取名字,但我发现自己遇到了麻烦,下面我举了一个我所做的例子 x = 'Fred used to play with his brother, Billy, both are 10 and their parents Jude and Edde have two more kids.' import re re.findall('^[A-Za-z ]+$',x) 任何人都可以向我解释什么是错误的以及
x = 'Fred used to play with his brother, Billy, both are 10 and their parents Jude and Edde have two more kids.'
import re
re.findall('^[A-Za-z ]+$',x)
任何人都可以向我解释什么是错误的以及如何进行?使用
re.findall(r'\b[A-Z]\w*', x)
看。它匹配以大写字母开头的单词,并具有任意数量的字母、数字或下划线。我认为您的正则表达式有两个问题
- 您想提取句子的名称。您需要删除行首和行尾
- 名称以大写字母开头,没有空格。您应该删除正则表达式中的
\b[A-Z][A-Za-z]+\b
我还尝试在python上测试结果
x = 'Fred used to play with his brother, Billy, both are 10 and their parents Jude and Edde have two more kids.'
import re
result = re.findall('\\b[A-Z][A-Za-z]+\\b',x)
print(result)
结果
['Fred', 'Billy', 'Jude', 'Edde']
尝试re.findall(r'\b[A-Z][A-Za-Z]*\b',x)