Python 尝试匹配每个正则表达式匹配的第一个字符
我正在制作一个小python脚本,它应该随机修改svg向量值的“十个” 我正在编辑的文件的每一行都如下所示:Python 尝试匹配每个正则表达式匹配的第一个字符,python,regex,Python,Regex,我正在制作一个小python脚本,它应该随机修改svg向量值的“十个” 我正在编辑的文件的每一行都如下所示: <path style="fill:#1b170e; stroke:none;" d="M32 0L33 1L32 0M35 0L35 4L36 4L35 0z"/> newline = re.sub(r"{r1}(?=\d\s)", r2, line) 我想我已经知道了如何在正则表达式中集成python变量,但我的主要问题是匹配了太多的数据。我只想匹配每场比赛的第一个角
<path style="fill:#1b170e; stroke:none;" d="M32 0L33 1L32 0M35 0L35 4L36 4L35 0z"/>
newline = re.sub(r"{r1}(?=\d\s)", r2, line)
我想我已经知道了如何在正则表达式中集成python变量,但我的主要问题是匹配了太多的数据。我只想匹配每场比赛的第一个角色。但我在本例中匹配的是:
- “32”
- “33”
- “32”
(?=\d\s)
,以查找但不捕获您不想要的字符。
因此,正则表达式如下所示:
<path style="fill:#1b170e; stroke:none;" d="M32 0L33 1L32 0M35 0L35 4L36 4L35 0z"/>
newline = re.sub(r"{r1}(?=\d\s)", r2, line)
您可以像这样使用正则表达式匹配的索引
def modify(a,b,s):
for m in re.finditer(r"{a}\d\s", s):
s[m.start(0)] = b
return s
#opening file
for file in os.listdir(temp_sub_svg):
f1 = open(temp_sub_svg + '/' + file, 'r')
f2 = open(temp_sub_gsvg + '/' + file, 'w')
for line in f1:
#create random values
r1 = str(random.randint(0, 9))
r2 = str(random.randint(0, 9))
#replace values
newline = mondify(r1,r2,line)
f2.write(newline)
f1.close()
f2.close()