[英]How to match the string after first character in a line
找到第一個匹配的字符串
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)
這是使用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')])
Output:
['Mak', 'Mak1', 'Mak2']
您可以使用:
>>> 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 中捕獲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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.