regex 尝试使用正则表达式从单词中删除'_'时,“\l”有什么问题?[closed]

roejwanj  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(146)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
18小时前关门了。
Improve this question
w="_word_ word_ _word",我想从这句话中删除'_',输出应为
w="word word word"
代码:

import regex as re
w="_word_ word_ _word"
w=re.sub(r"\b_([a-zA-Z]+)_\b",r"\l",w)
w=re.sub(r"\b_([a-zA-Z]+)\b",r"\l",w)
w=re.sub(r"\b([a-zA-Z]+)_\b",r"\l",w)
w

我收到的错误:

error                                     Traceback (most recent call last)
<ipython-input-23-29d7f724a53f> in <module>
      1 import regex as re
      2 w="_word_ word_ _word"
----> 3 w=re.sub(r"\b_([a-zA-Z]+)_\b",r"\l",w)
      4 w=re.sub(r"\b_([a-zA-Z]+)\b",r"\l",w)
      5 w=re.sub(r"\b([a-zA-Z]+)_\b",r"\l",w)

2 frames
/usr/local/lib/python3.8/dist-packages/regex/_regex_core.py in _compile_replacement(source, pattern, is_unicode)
   1735                 return False, [value]
   1736 
-> 1737         raise error("bad escape \\%s" % ch, source.string, source.pos)
   1738 
   1739     if isinstance(source.sep, bytes):

error: bad escape \l at position 2
sycxhyv7

sycxhyv71#

如果你想替换字符串中的任何_,你可以这样做

import regex as re

w = "_word_ word_ _word"

# Remove underscores
w = re.sub(r"_", "", w)

print(w)  # Output: "word word word"

如果你只想替换落在单词之前或之后的_(出现在单词中的任何下划线(例如word_word)都将保持不变。),你可以这样做。

import regex as re

w = "_word_ word_ _word"

# Remove underscores at the beginning or end of a word
w = re.sub(r"\b_|_\b", "", w)

print(w)  # Output: "word word word"

相关问题