为了账号安全,请及时绑定邮箱和手机立即绑定

替换字符串中的特定模式 | 正则表达式

替换字符串中的特定模式 | 正则表达式

慕尼黑8549860 2021-09-28 21:05:49
我希望'/'用"".例子"a/b b/c" 应该替换为 "ab bc""a/b python/Java" 应该替换为 "ab python/Java"虽然我知道如何使用 regex 替换re.sub("/","","a/b python"),但问题是,替换只需要在字符串的特定部分进行。这里的任何帮助将不胜感激。谢谢
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您可能要做的是首先将模式与/双引号之间的 1+ 个字符, , 1+ 个字符匹配。然后因为模式匹配,您可以拆分字符串并检查 item 的字符串长度是否为 3。


如果是,请使用 map 并将 替换为/空字符串并重建该字符串。


匹配完整模式:


"\w+\/\w+(?: \w+\/\w+)*"

正则表达式演示Python 演示

例如:


import re


regex = r"\"\w+\/\w+(?: \w+\/\w+)*\""

test_str = ("\"a/b b/c\"\n"

    "\"a/b python/Java\"")

matches = re.findall(regex, test_str, re.MULTILINE)


for match in matches:

    res = map(lambda s: s.replace("/", "") if len(s) == 3 else s, match.strip("\"").split())

    print('"{0}"'.format(" ".join(res)))

结果


"ab bc"

"ab python/Java"


查看完整回答
反对 回复 2021-09-28
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信