如何匹配lin中第一个字符后的字符串

2024-04-26 01:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

找到第一个匹配的字符串

s = '''
Name Mak How are you Name non Name anonymouse
Name Mak1 How are you Name non1
Name Mak2 How are you Name non2
'''

如何提取名字

My Expected Out
['Mak', 'Mak1', 'Mak2']

伪码

import re
re.findall(r'?Name (([\w]+)',s)

Tags: 字符串namereyoumy名字arehow
3条回答

您可以使用:

>>> s = '''
... Name Mak How are you Name non Name anonymouse
... Name Mak1 How are you Name non1
... Name Mak2 How are you Name non2
... '''
>>> re.findall(r'(?m)^Name (\w+)', s)
['Mak', 'Mak1', 'Mak2']

正则表达式详细信息:

  • (?m)启用多行模式
  • ^:开始
  • Name:匹配文本后跟空格
  • (\w+):匹配1+个单词字符并在组#1中捕获

这是一种使用str.split的方法。你知道吗

例如:

s = '''
Name Mak How are you Name non Name anonymouse
Name Mak1 How are you Name non1
Name Mak2 How are you Name non2
'''

print([line.split()[1] for line in s.splitlines() if line.startswith('Name')])

输出:

['Mak', 'Mak1', 'Mak2']
re.findall(r'Name\s+([^\s]+).+', m)

详细信息

# Name - matches Name literally

# \s+ - matches one or more of white spaces

# ([^\s]+) - match one or more characters other from whitespace \s and store it inside first capturing group

# .+ - match one or more of any characters (except newline)

相关问题 更多 >