gpt4 book ai didi

python - 如何使用正则表达式在单词组合之后和下一个空格之前找到具有单词和非单词字符的模式

转载 作者:行者123 更新时间:2023-12-05 00:10:02 25 4
gpt4 key购买 nike

输入文本

str_ = '''abc xyz pq m_www.google.in_10 -name itel.google.in
abc xyz pq I_www.google.in_9 -name itel.google.com
abc xyz pq I_www.google.in_8
abc xyz pq I.www_google.com_10 -name itel_google.com_9'''

需要提取 'abc xyz pq ' 之后的组合直到下一个空格。这个组合可以包含\w & dot。还想提取“-name”之后的组合。这两个组合应该是一个列表

预期输出(作为列表)
'[['m_www.google.in_10', 'itel.google.in']
['I_www.google.in_9', 'itel.google.com']
['I_www.google.in_8', '']
['I_www.google.com_10', 'itel.google.com_9']]'

我的伪代码
import re
re.findall(r'abc xyz pq (\w+)\.(\w+)\.(\w+) -name? (\w+?)\.(\w+?)\.(\w+?)',str_ )

最佳答案

您可以在 re.findall 中使用此正则表达式:

>>> for i in re.findall(r'abc xyz pq\s+([\w.]+)(?:\s+-name\s+([\w.]+))?', str_):
... print (i)
...
('m_www.google.in_10', 'itel.google.in')
('I_www.google.in_9', 'itel.google.com')
('I_www.google.in_8', '')
('I.www_google.com_10', 'itel_google.com_9')

请注意,该列表与您预期的数据结构不匹配,但您可以迭代此列表并创建您的自定义结构。

或者,您可以使用 re.finditer并准备您的自定义列表。

关于python - 如何使用正则表达式在单词组合之后和下一个空格之前找到具有单词和非单词字符的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com