Regex 如何仅在后跟包含特定字符的字符串时匹配特定字符
我试图替换字符串中的斜杠,但不是全部,只替换第一个逗号之前的斜杠。要做到这一点,我可能必须找到一种方法,只匹配后面跟有包含逗号的字符串的斜杠 是否可以使用oneregexp执行此操作,即不首先用逗号拆分字符串 输入字符串示例:Regex 如何仅在后跟包含特定字符的字符串时匹配特定字符,regex,string,Regex,String,我试图替换字符串中的斜杠,但不是全部,只替换第一个逗号之前的斜杠。要做到这一点,我可能必须找到一种方法,只匹配后面跟有包含逗号的字符串的斜杠 是否可以使用oneregexp执行此操作,即不首先用逗号拆分字符串 输入字符串示例: Abc1/Def2/Ghi3,/Dore1/Mifa2/Solla3,Sido4 我想要的是: Abc1.Def2.Ghi3,/Dore1/Mifa2/Solla3,Sido4 我已经尝试了一些前瞻和落后技术,但没有效果,因此,为了在Python中实现这一点,我首先拆
Abc1/Def2/Ghi3,/Dore1/Mifa2/Solla3,Sido4
我想要的是:
Abc1.Def2.Ghi3,/Dore1/Mifa2/Solla3,Sido4
我已经尝试了一些前瞻和落后技术,但没有效果,因此,为了在Python中实现这一点,我首先拆分数据:
test = 'Abc1/Def2/Ghi3,/Dore1/Mifa2/Solla3,Sido4'
strlist = re.split(r',', test)
result = ','.join([re.sub(r'\/', r'.', strlist[0])] + strlist[1:])
不过,我更喜欢使用特定的regexp模式,而不是面向Python的解决方案,因此本质上我可以使用模式
和替换
,这样下面的代码将给出相同的结果:
result = re.sub(pattern, replacement, test)
感谢所有regex避免回答-我想知道我是否可以只使用regex(例如,我可以使用
sed
而不是Python)来实现这一点。您可以使用查找字符串开头而不查找逗号的lookback表达式来实现这一点。或者不要完全使用re
s = 'Abc1/Def2/Ghi3,/Dore1/Mifa2/Solla3,Sido4'
left,sep,right = s.partition(',')
sep.join((left.replace('/','.'),right))
Out[24]: 'Abc1.Def2.Ghi3,/Dore1/Mifa2/Solla3,Sido4'
这将打印您需要的内容。尽量避免使用正则表达式,因为它们很慢
item = 'Abc1/Def2/Ghi3,/Dore1/Mifa2/Solla3,Sido4'
print item.replace("/", ".", item.count("/", 0, item.index(",")))