正则表达式 - 识别所需的适当字符类(Python)时遇到问题



我正在尝试编写一个正则表达式,该表达式仅打印出附加文档中的名字(仅表中的数据,我没有使用下面的东西,但最终会解决这个问题(。

https://automatetheboringstuff.com/files/examplePhoneEmailDirectory.pdf

这是我到目前为止的代码:

import re
import pyperclip
nameRegex = re.compile(r'''

[a-zA-Z]+    # first name
s          # space
[a-zA-Z]+    # last name
''', re.VERBOSE)
text = pyperclip.paste()
extractedText = nameRegex.findall(text)
print(extractedText)

我面临的问题是,当我运行代码时,我得到如下内容: Jessie Mckayjmckay

它给了我名字,姓氏和他们电子邮件地址中的字母,停在第一个数字上。我试图通过添加这样的否定自定义字符类来解决这个问题 [^\s]。我的想法是代码会识别姓氏后面的空格并停止。但是,这不起作用,我怀疑这与文档的格式有关。

有人能帮我吗?

打印数据输出后,我注意到您的正则表达式也匹配电子邮件和名字,因为它们之间有一个空格。所以我的想法是确保每个单词的第一个字母是大写的(因为数据是这样格式化的(:


import re
import pyperclip
nameRegex = re.compile(r'''

[A-Z][a-z]+   # first name
s+          # space
[A-Z][a-z]+    # last name
''', re.VERBOSE)
text = pyperclip.paste()
extractedText = nameRegex.findall(text)
print(extractedText)

试试这个:)

我得到了以下结果(结果的一部分(:

['Jessie Mckay', 'Tom Jordan', 'Clayton Cross', 'Rayford Sutton', 'Jerome Gentry', 'Weldon Camacho', 'Quinton Franks', 'Adam Hubbard', 'Jarred Fox', 'Arnoldo Parker', 'Sid Mcdaniel', 'Raymon Combs', 'Ervin Francis', 'Gilberto Austin', 'Lino Barlow', 'Stacey Shepherd', 'Roscoe Terry', 'Eddie Meadows', 'Carlos Simpson', 'Jerome Manning', 'Hong Erickson', 'Burt Graham', 'Mario Sloan', 'Jeffry Mcintosh', 'Owen Malone', 'Jamar Gilbert', 'Guadalupe Ramsey', 'Chet Ramsey', 'Lester Finch', 'Mason Marquez', 'Olen Boyer', 'Sherman Gamble', 'Gerry Mccarthy', 'Jon Jefferson', 'Cristopher Maddox', 'Abel Talley', 'Jerrod Hurst', 'Ezra Pickett', 'Delbert Mcintyre', 'Tom Wilkins', 'Deandre Schneider', 'Louie Gross', 'Cary Mathews', 'Clinton Hernandez', 'Sylvester Goodman', 'Efren Daniels', 'Myles Knapp', 'Trey Hendrix', 'Gerardo Gonzales', 'Collin Wilkinson', 'Hubert Moore', 'Rudolph Joyce', 'Raymundo Griffin', 'Stanton Burris', 'Newton Huff', 'Lonnie Gibson', 'Newton Mendez', 'Dominic Kane', 'Rey Alvarado', 'Maxwell Pittman', 'Freddy Nolan', 'Quentin Kane', 'Marcelo Owens', 'Saul Warner', 'Giuseppe Edwards', 'Glen Duffy', 'Johnson Bird', 'Lon Mays', 'Orval Jones', 'Stefan Wiley', 'Dewayne Vincent', 'Elmo Morton', 'Trenton Randolph', 'Alonzo Noble', 'Stephan Callahan', 'Merrill Morin', 'Antonia Vasquez', 'Jerrod Horne', 'Sammie Blanchard', 'Renaldo Nielsen', 'Rick Logan', 'Xavier Sexton', 'Delmer Chambers', 'Melvin Dixon', 'Randell Wright', 'Kasey Mcbride', 'Long Cohen', 'Hunter Walton', 'Jacques Dean', 'Nicky Cleveland', 'Heath Reeves', 'Dannie Castro', 'Malcolm Pickett', 'Emil Bryant', 'Lonny Trevino',

最新更新