正则表达式。使用Python将Pathstring中的front和姓氏分组
我需要从以下字符串(文件夹名称)中提取名称。我把它们做成粗线。 一些例子:正则表达式。使用Python将Pathstring中的front和姓氏分组,python,regex,Python,Regex,我需要从以下字符串(文件夹名称)中提取名称。我把它们做成粗线。 一些例子: '.\\\\Jens, Jensen\\\\Rechnungen\\\\Rechnungen 2020\\\\somefoldername' '.\\Harald, Hardraala\\Rechnungen 2017' '.\\A - H\\Johan, Johanson\\Rechnungen 2017' '.\\\\Jens-Haudraf, Johan\\\\Rechnungen\\\\Rechnungen 20
'.\\\\Jens, Jensen\\\\Rechnungen\\\\Rechnungen 2020\\\\somefoldername'
'.\\Harald, Hardraala\\Rechnungen 2017'
'.\\A - H\\Johan, Johanson\\Rechnungen 2017'
'.\\\\Jens-Haudraf, Johan\\\\Rechnungen\\\\Rechnungen 2020\\\\anotherfoldername'
'.\\A - H\\Funke, Felix'
我想把名字放在一组里。我做不到。这就是我想到的
r'\\*(\w*\-{0,1},{0,1} {0,1}\w*)'
非常感谢您的任何想法。以下代码将提取名称,假设格式保持不变,即一个单词名(可能带有连字符)+逗号+另一个单词名(可能带有连字符)
您可以将后跟单词字符的反斜杠与可选的连字符部分相匹配。然后匹配空格,然后再次匹配单词字符 该值位于第一个捕获组中 图案 部分地
匹配\\
\
Capturegroup 1(
将1+字字符与可选的和1+字字符进行匹配\w+(?:-\w+)
匹配逗号、空格和1+字字符,\w+
关闭第1组)
你要找的是“姓,名”吗?
import re
strings = ['.\\\\Jens, Jensen\\\\Rechnungen\\\\Rechnungen 2020\\\\somefoldername',
'.\\Harald, Hardraala\\Rechnungen 2017',
'.\\A - H\\Johan, Johanson\\Rechnungen 2017',
'.\\\\Jens-Haudraf, Johan\\\\Rechnungen\\\\Rechnungen 2020\\\\anotherfoldername',
'.\\A - H\\Funke, Felix']
matches = [ re.search("[\w-]+, [\w-]+",s).group() for s in strings ]
print(matches)
>>>
['Jens, Jensen', 'Harald, Hardraala', 'Johan, Johanson', 'Jens-Haudraf, Johan', 'Funke, Felix']
\\(\w+(?:-\w+)?, \w+)
import re
regex = r"\\(\w+(?:-\w+)?, \w+)"
strings = [
'.\\\\Jens, Jensen\\\\Rechnungen\\\\Rechnungen 2020\\\\somefoldername',
'.\\Harald, Hardraala\\Rechnungen 2017',
'.\\A - H\\Johan, Johanson\\Rechnungen 2017',
'.\\\\Jens-Haudraf, Johan\\\\Rechnungen\\\\Rechnungen 2020\\\\anotherfoldername',
'.\\A - H\\Funke, Felix'
]
for s in strings:
matches = re.search(regex, s)
if matches:
print(matches.group(1))
Jens, Jensen
Harald, Hardraala
Johan, Johanson
Jens-Haudraf, Johan
Funke, Felix