Python正则表达式:在字符串中模式出现之前替换一些字符

Python正则表达式:在字符串中模式出现之前替换一些字符,python,regex,string,replace,Python,Regex,String,Replace,我在使用python的3正则表达式替换字符串中的字符时遇到问题。我能够找到模式的引用,但我想替换模式中第一个出现的字符。不幸的是,我正在替换整个模式。另一方面,在这个任务中使用正则表达式可能是错误的。以下是我所拥有的: >>> my_table1='\nParametr JednostkaNormaGodzinaŚrednia(1)123456789101112131415161718192021222324 \nDwutlenek siarki (SO2) µg/m3 350

我在使用python的3正则表达式替换字符串中的字符时遇到问题。我能够找到模式的引用,但我想替换模式中第一个出现的字符。不幸的是,我正在替换整个模式。另一方面,在这个任务中使用正则表达式可能是错误的。以下是我所拥有的:

>>> my_table1='\nParametr JednostkaNormaGodzinaŚrednia(1)123456789101112131415161718192021222324 \nDwutlenek siarki (SO2) µg/m3 350 56 53 50 51 51 44 41 36 39 42 34 30 34 33 26 25 24 23 24 25 21 21 22 24 35 \nTlenek azotu (NO) µg/m3 30 30 27 29 44 98 192

我要做的是插入“,”或“;”在数字之间。我不能简单地用逗号替换所有空格,因为我不想分割这部分:
\nDwutlenek-siarki(SO2)µg/m3
。所以我想用正则表达式(
r'\s\d+'
)查找空格和数字的出现。这将正确查找所有实例。现在我想使用子函数将\s替换为“”,但我不知道如何将\s与模式隔离开来。有什么想法吗?

使用lookback/lookahead,如下所示:

p = re.compile(r'(?<=\d)\s(?=\d)')
p.sub(';', my_table1)

p=re.compile(r')(?使用lookback/lookahead,如下所示:

p = re.compile(r'(?<=\d)\s(?=\d)')
p.sub(';', my_table1)

p=re.compile(r')(?一般来说,尤其是在正则表达式中,不仅提供输入,而且提供预期输出是明智的,这将帮助人们帮助你。一般来说,尤其是在正则表达式中,不仅提供输入,而且提供预期输出是明智的,这将帮助人们帮助你。感谢Anders,这解决了问题。我确实看到了(向后看/向前看)在文档中,但无法获取机制。现在清楚了。干杯。谢谢安德斯,这解决了问题。我确实在文档中看到了(向后看/向前看),但无法获取机制。现在清楚了。干杯。