正则表达式替换Python 3中的字符串

时间:2017-05-09 16:22:15

标签: python regex python-3.x

我正在尝试使用正则表达式替换Python 3中的字符串。我需要s1中的字符串完全替换为空字符串。

s1 = "/*  123  */"  # Pattern /*  n  */ where n can be any integer  
s2 = re.sub(r'/*\s*\d+\s*/',"",s1)
print(s2)

输出(实际) - /* 123 */#没有任何反应

输出(预期) - BLANK

2 个答案:

答案 0 :(得分:3)

*是一个元字符,如果要匹配文字*字符,则需要将其转义。在结束*之前,您还缺少文字/字符:

s2 = re.sub(r'/\*\s*\d+\s*\*/', "", s1)

您的代码匹配零个或多个/个字符,以及零个或多个\s个空格,但不包含评论开头和结尾的任何文字*字符。< / p>

演示:

>>> import re
>>> s1 = "/*  123  */"
>>> re.sub(r'/\*\s*\d+\s*\*/', "", s1)
''

答案 1 :(得分:0)

\ S +所有没有空格字符,\ s +空格。

[31]: re.sub(r'\S+|\s+', "", s1)
Out[31]: ''