python - 在字符串中的特定模式内进行替换 |正则表达式

标签 python regex python-3.x

我希望将特定模式中出现的字符 '/' 替换为 ""

示例

  1. “a/b b/c” 应替换为 “ab bc”

  2. “a/b python/Java” 应替换为 “ab python/Java”

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

如有任何帮助,我们将不胜感激。 谢谢

最佳答案

这简化并扩展了 Code Maniac's评论:

您可以使用 re.sub 替换找到的模式

import re

regex = r"(\b\w)\/(\w\b)" # do not capture the /

test_str = """a/b b/c
a/b python/Java"""

subst = r"\1\2"           # replace with 1st and 2nd capture group
result = re.sub(regex, subst, test_str, flags=re.MULTILINE)

if result:
    print (result)

作为模式 r"(\b\w)\/(\w\b)" 您定义一个单词边界 + 1 个单词字符,后跟 \ 后跟另外 1 个单词字符,后跟单词边界。您将其捕获为 1. 和 2. 组 - \ 没有被捕获。

您可以将每个匹配项替换为 / 之前/之后捕获的组。

输出:

ab bc
ab python/Java

测试:https://regex101.com/r/WI0Wg3/1

关于python - 在字符串中的特定模式内进行替换 |正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53979189/

相关文章:

python - python 2.7 urllib2 和 json 中的脚本引发 unicode 错误

python - 将 python 字符串转换为 numpy 数组

regex - 如何在 Cygwin 中的 grep 中使用正则表达式 OR?

python - 获取嵌套字典中所有项目的所有 parent 键

python - 以模式作为聚合器分组

python - 将文本文件中列出的特定文件从源文件夹复制到目标文件夹

python - 如何在 10 秒后强制用户输入

python - 尝试从新闻文章中提取元数据

python - 如何在 Python 中解析特定子字符串旁边的值

javascript - 我是否应该重新验证已在 javascript 中验证的 php 中的表单输入