我在django / python应用程序中有一个字符串,需要搜索[x]
的每个实例。这包括括号和x,其中x是1到几百万之间的任何数字。然后我需要用自己的字符串替换x。
即,'Some string [3423] of words and numbers like 9898'
会变成'Some string [mycustomtext] of words and numbers like 9898'
请注意,只有括号内的号码受到影响。我不熟悉正则表达式,但认为这会为我做这件事吗?
答案 0 :(得分:4)
正则表达式正是你想要的。它是Python中的re模块,你需要使用re.sub,它看起来像:
newstring = re.sub(r'\[\d+\]', replacement, yourstring)
如果你需要做很多事情,可以考虑编译正则表达式:
myre = re.compile(r'\[\d+\]')
newstring = myre.sub(replacement, yourstring)
修改:要重复使用该号码,请使用正则表达式组:
newstring = re.sub(r'\[(\d+)\]',r'[mytext, \1]', yourstring)
编辑仍然是可能的。
答案 1 :(得分:1)
使用re.sub
:
import re
input = 'Some string [3423] of words and numbers like 9898'
output = re.sub(r'\[[0-9]+]', '[mycustomtext]', input)
# output is now 'Some string [mycustomtext] of words and numbers like 9898'
答案 2 :(得分:0)
由于没有其他人在这里跳,我会给你我的非正式版的Python版本
\[(\d{1,8})\]
现在在替换部分中,您可以使用'被动组'$ n来替换(其中n =与括号中的部分对应的数字)。这个是$ 1