2017-05-09 126 views
0

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

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

输出(实际) - /* 123 */#什么也没有发生

输出(预期) - BLANK

回答

1

*是元字符,你需要的,如果你想匹配一个*字符转义。您还缺少文字*字符刚刚闭幕/前:

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

你的代码是在开始匹配零个或多个/字符,零个或多个\s空间,但不是任何文字*字符,评论结束。

演示:

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

\ S +完全没有空格字符,\ S +空格。

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