Python 提取具有特定字符序列的单词
我有一个字符串列表。我只想提取每个字符串中具有特定字符序列的单词 比如说Python 提取具有特定字符序列的单词,python,regex,Python,Regex,我有一个字符串列表。我只想提取每个字符串中具有特定字符序列的单词 比如说 l1=["grad madd have", "ddim middle left"] 我要所有有序列“dd”的单词 所以我想 [["madd"], ["ddim", "middle"]] 我一直在尝试这种形式的模式 [re.findall(r'(\b.*?dd.*\s+)',word) for word in l1] 但是几乎没有成功您可以尝试使用这个正则表达式:\b\w*dd\w*\b 您可以尝试使用此正则表达式:
l1=["grad madd have", "ddim middle left"]
我要所有有序列“dd”的单词
所以我想
[["madd"], ["ddim", "middle"]]
我一直在尝试这种形式的模式
[re.findall(r'(\b.*?dd.*\s+)',word) for word in l1]
但是几乎没有成功您可以尝试使用这个正则表达式:
\b\w*dd\w*\b
您可以尝试使用此正则表达式:
\b\w*dd\w*\b
试着用一句话:
l1=["grad madd have", "ddim middle left"]
print(list(map(lambda x:list(filter(lambda y:'dd' in y,x.split())),l1)))
输出:
[['madd'], ['ddim', 'middle']]
请在一行中尝试:
l1=["grad madd have", "ddim middle left"]
print(list(map(lambda x:list(filter(lambda y:'dd' in y,x.split())),l1)))
输出:
[['madd'], ['ddim', 'middle']]
您可以使用列表理解来进行此操作。你不需要正则表达式来完成你想要做的事情
这将在
l1
上循环,并按空格字符分割每个值。然后,它测试该子字符串以查看它是否包含dd
,如果包含,则返回它。您可以使用列表理解进行此操作。你不需要正则表达式来完成你想要做的事情
这将在
l1
上循环,并按空格字符分割每个值。然后,它测试该子字符串以查看它是否包含dd
,如果包含,则返回该子字符串。如果已接近,则需要将单词字符0与\w*
匹配多次:
[re.findall(r'\w*dd\w*', word) for word in l1]
如果您很接近,则需要将单词字符0与
\w*
匹配多次:
[re.findall(r'\w*dd\w*', word) for word in l1]
你需要正则表达式吗?我的思路与quamrana相同,如果你将l1[0]和l1[1]处的字符串转换为列表(按空格分割),那么你可以循环使用:如果“dd”in…你需要正则表达式吗?我的思路与quamrana相同,如果你将l1[0]和l1[1]处的字符串转换为列表(按空格分割)然后你可以循环使用:如果在…中使用“dd”,那么正确的表达式是
[re.findall(r'\b\w*dd\w*\b',x)表示l1中的x]
正确的表达式是[re.findall(r'\b\w*dd\w*\b',x)表示l1中的x]
正则表达式不完整。正则表达式不完整。