簡體   English   中英

如何匹配一行中第一個字符后的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM