查找单个转义字符

时间:2015-05-25 13:43:42

标签: regex python-3.x

我想替换给定文本中的一些转义字符。这就是我尝试过的。

// provided `value` contains what you got from jQuery
var multiply = value.indexOf('ms') !== -1 ? 1 : 1000;
var converted = parseInt(parseFloat(value) * multiply, 10);
// converted now contains the value in millseconds

打印:

_RE_SPECIAL_CHARS = re.compile(r"(?:[^@\\]|\\.)+@")

text = r"ok@\@.py"
search = re.search(_RE_SPECIAL_CHARS, text)

print(text)

if search:
    print(_RE_SPECIAL_CHARS.sub("<star>", text))

else:
    print('<< NOTHING FOUND ! >>')

我需要的是ok@\@.py <star>\@.py

1 个答案:

答案 0 :(得分:1)

您可以使用lookbehind并匹配特殊字符:

re.compile(r"(?<=[^@\\]|\\.)@")

请参阅DEMO

或者您可以在第1组@之前捕获该部分,并替换为\1<star>

re.compile(r"((?:[^@\\]|\\.)+)@")

print(_RE_SPECIAL_CHARS.sub("\1<star>", text))

请参阅DEMO