小编Geo*_*rge的帖子

正则表达式re.sub列表在一个文件中

我有一个文本列表,可以用以下方式重新编写:re.sub('0000', '1111',data).

一个替代模式^(.{4})(.{4})(.{3})(.{3})\1\4\2\3在壳一个输入正常工作也.但是,我在列表中使用此模式的尝试在第一行上给出了不良结果,并且从不替换后者.我在这里错过了什么?

"0000-22N-06W-01"
"0000-22N-06W-02"
"0000-22N-06W-03"
"0000-22N-06W-04"

import re
o = open("output.txt","w")
data = open("input.txt").read()
o.write(re.sub(r'^(.{4})(.{4})(.{3})(.{3})', r'\1\4\2\3',data))
o.close()
Run Code Online (Sandbox Code Playgroud)

python regex

6
推荐指数
1
解决办法
6739
查看次数

正则表达式匹配并替换多个模式

我有一种情况,用户提交地址,我必须将用户输入替换为我的键.我可以使用没有后缀的地址加入.

覆盖的WAGON TRAIL

CHISHOLM TRAIL

LAKE TRAIL

CHESTNUT ST

林肯街

至:

覆盖的WAGON

CHISHOLM

板栗

林肯

但是,我无法理解如何编写此代码以仅替换最后一个单词.我明白了:

林肯

板栗

CHISHOLM

LAKEAIL

CHISHOLMAIL

覆盖的WAGONL

我试过regex verbose,re.sub和$.

import re
target = '''

LINCOLN STREET
CHESTNUT ST
CHISHOLM TR
LAKE TRAIL
CHISHOLM TRAIL
COVERED WAGON TRL

'''
rdict = {
' ST': '',
' STREET': '',
' TR': '',
' TRL': '',
}
robj = re.compile('|'.join(rdict.keys()))
re.sub(' TRL', '',target.rsplit(' ', 1)[0]), target
result = robj.sub(lambda m: rdict[m.group(0)], target)
print result
Run Code Online (Sandbox Code Playgroud)

python regex

5
推荐指数
1
解决办法
7466
查看次数

标签 统计

python ×2

regex ×2