我在使用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
。所以我想用regex(r'\s\d+'
)来查找空格和数字的出现。这将正确查找所有实例。现在我想使用子函数将\s替换为',,但我不知道如何将\s与模式隔离开来。有什么想法吗?在
使用lookbehind/lookahead,如下所示:
正查找
(?<=\d)
匹配数字(\d
)之后的任何内容,而不匹配数字本身;\s
匹配单个空白字符;正前瞻(?=\d)
匹配任何跟在数字后面的内容。因此,这将用;
替换两个数字之间的任何单个空格。注意,lookbehind/ahead需要是固定长度的(因此不能使用(?<=\d+)
)之类的东西。在在您的情况下,只要
r'\s(?=\d)'
就足够了,可能不需要回头看。在相关问题 更多 >
编程相关推荐