如何使用python正则表达式获得两个“111=”

2024-09-27 00:12:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这是mu\y代码:

a = '111 = dw11qdwq\n111 = aaaaa'

print re.search(r'111 = (\S*)',a).group(1)

它显示:dw11qdwq

但我想得到dw11qdwq和{}

我能做什么呢

谢谢

更新

^{pr2}$

以及如何将dw11qdwq替换为qqqqqqaaaaa替换为{}

我想得到'111 = qqqqqq\n111 = wwwwwww'

更新:

现在可以了:

d = {'dw11qdwq':'qqqqqq' ,'aaaaa':'wwwwwww'}

a = '111 = dw11qdwq\n111 = aaaaa'

print repr(a)
a= re.sub('(111\s*=\s*)(\S*)',lambda mat: mat.group(1)+d[mat.group(2)],a)
print repr(a)

Tags: lambda代码researchgroupprintmataaaaa
3条回答

我想这应该能回答你的编辑:

a = '111 = dw11qdwq\nsome other line\n111 = aaaaa'
b = re.split(r'(111 = )\S*', a)
d = ['qqqqqq','wwwwwww']
a = "".join(x + d.pop(0) if x == '111 = ' else x for x in b)
print a

编辑:现在应该可以正确处理不匹配的文本。在

a = '111 = dw11qdwq\n111 = aaaaa'

print re.findall(r'111 = (\S+)',a)

这将匹配具有1个或多个非空格字符的任何单词。(我很确定您不想匹配0个或更多字符(这是'*'提供的内容))

编辑:

更新代码:

^{pr2}$

a现在是:

^{3}$
import re

d = {'dw11qdwq':'qqqqqq' ,'aaaaa':'wwwwwww'}

a = '111 = dw11qdwq\n111 = aaaaa'

print repr(a)
a= re.sub('111\s*=\s*(\S*)',lambda mat: d[mat.group(1)],a)
print repr(a)

一。在

编辑

对不起,我忘了把111\s*=\s*定义为一个组 你两个都可以

^{pr2}$

或者

^{3}$

相关问题 更多 >

    热门问题