regex 正则表达式:捕获带条件的特定字符串

dm7nw8vv  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(134)

下面的字符串:u00,因为我需要将其替换为\u00
有时候这个字符之前出现的时候是\,那我就不想捕捉了。有时候符号是",我就想捕捉,但是就u00,不捕捉"u00
我尝试这个:

file_modified = re.sub(r'[^\\|^\s](u00)', r'\\u00', original_file)

我正在捕捉",我不知道如何跳过它,我只想捕捉u00

jaql4c8m

jaql4c8m1#

只需 选择 性 地 进行 匹配 :

file_modified = re.sub(r'\\?u00', r'\\u00', original_file)

中 的 每 一 个
在 这里 ,

  • \\?u00 - 匹配 可选 的 \u00
  • \\u00 - 是 替换 为 \u00 的 替换 模式

因此 , 即使 在 u00 之前 有 一 个 \ , 它 也 不会 消失 , 也 不会 被 加倍 , 但 如果 它 丢失 了 , 它 将 被 添加 。
请 参阅 Python demo

import re
original_file = r"u00 because i need to replace it to \u00"
print(re.sub(r'\\?u00', r'\\u00', original_file))
# => \u00 because i need to replace it to \u00

格式

zujrkrfu

zujrkrfu2#

使用负lookbehindAssertr'(?<!\\)(u00)'。将匹配u00,前提是它前面不带\

相关问题