我正在尝试使用正则表达式替换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
答案 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]: ''