我希望将特定模式中出现的字符 '/'
替换为 ""
。
示例
“a/b b/c”
应替换为“ab bc”
“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
关于python - 在字符串中的特定模式内进行替换 |正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53979189/