输入文本
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点(&D)。还要提取'-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
中使用此正则表达式:请注意,该列表与预期的数据结构不匹配,但您可以迭代此列表并创建自定义结构。你知道吗
或者您可以使用
re.finditer
并准备您的自定义列表。你知道吗具有特定正则表达式模式:
预期输出(列表列表):
正则表达式模式详细信息:
\b
-单词边界(\w+[.\w]+)
-捕获单词字符\w+
,后跟.
字符或单词字符序列[.\w]+
(?: ...)
-将组标记为非捕获,但在上面的情况下,它包含另一个捕获的组(内部组)(...)?
-将组标记为可选(?
量词匹配在0到1倍之间)相关问题 更多 >
编程相关推荐