python中的正则表达式(123/4)
我有以下字符串:python中的正则表达式(123/4),python,regex,csv,Python,Regex,Csv,我有以下字符串: line = '5320411, 996/7 W/O ABC ANO-20' 在遇到123/4格式的数字后,我想添加一个逗号。 我的方法是使用正则表达式,我对正则表达式相当陌生。我尝试了以下方法: re.sub('^(\S+)\s+\[0-9]{3}/[0-9]{1}', ',', line) 首先,我在开始时检查一个或多个空格,后面是三位数,后面是斜杠,然后是另一个数字。然而,我似乎不知道如何在这种模式出现后使用逗号 预期输出应如下所示: line = '532
line = '5320411, 996/7 W/O ABC ANO-20'
在遇到123/4格式的数字后,我想添加一个逗号。
我的方法是使用正则表达式,我对正则表达式相当陌生。我尝试了以下方法:
re.sub('^(\S+)\s+\[0-9]{3}/[0-9]{1}', ',', line)
首先,我在开始时检查一个或多个空格,后面是三位数,后面是斜杠,然后是另一个数字。然而,我似乎不知道如何在这种模式出现后使用逗号
预期输出应如下所示:
line = '5320411, 996/7 , W/O ABC ANO-20'
re.sub
re.sub(r'\b(\d{3}\/\d)\b', r'\1,', line)
# Output
'5320411, 996/7, W/O ABC ANO-20'
正则表达式解释(演示):
这里的关键是,我们不想用逗号替换模式,我们想用模式加逗号替换模式,我们可以通过在匹配的第一组中捕获模式,并用匹配的第一组替换模式,最后添加逗号,或者:
\1,
re.sub
re.sub(r'\b(\d{3}\/\d)\b', r'\1,', line)
# Output
'5320411, 996/7, W/O ABC ANO-20'
正则表达式解释(演示):
这里的关键是,我们不想用逗号替换模式,我们想用模式加逗号替换模式,我们可以通过在匹配的第一组中捕获模式,然后用匹配的第一组替换模式,最后添加逗号,或者:
\1,
您使用积极的后视:
import re
line = '5320411, 996/7 W/O ABC ANO-20'
new_line = re.sub('(?<=\d{3}/\d{1})\s', ' ,', line)
您使用积极的后视:
import re
line = '5320411, 996/7 W/O ABC ANO-20'
new_line = re.sub('(?<=\d{3}/\d{1})\s', ' ,', line)
只是一件小事。如果斜杠后面有两个数字而不是一个,我会使用re.sub(r'\b(\d{3}\/\d{1})\b',r'\1',行)来检查一个和两个数字吗?正确,
\b(\d{3}\/\d{1,2})\b
会接受一个或两个数字。只是一件小事。如果斜杠后面有两个数字,而不是一个,我会使用re.sub(r'\b(\d{3}\/\d{1,2]})\b',r'\1',行)检查一位和两位数字吗?正确,\b(\d{3}\/\d{1,2})\b
会接受一位或两位数字。