猿问

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

我希望'/'"".

例子

  1. "a/b b/c" 应该替换为 "ab bc"

  2. "a/b python/Java" 应该替换为 "ab python/Java"

虽然我知道如何使用 regex 替换re.sub("/","","a/b python"),但问题是,替换只需要在字符串的特定部分进行。

这里的任何帮助将不胜感激。谢谢


慕尼黑8549860
浏览 210回答 2
2回答

catspeake

您可能要做的是首先将模式与/双引号之间的 1+ 个字符, , 1+ 个字符匹配。然后因为模式匹配,您可以拆分字符串并检查 item 的字符串长度是否为 3。如果是,请使用 map 并将 替换为/空字符串并重建该字符串。匹配完整模式:"\w+\/\w+(?: \w+\/\w+)*"正则表达式演示| Python 演示例如:import reregex = 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"
随时随地看视频慕课网APP

相关分类

Python
我要回答