2017-05-09 15 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

*がメタ文字で、あなたはリテラル*文字を一致させたい場合は、それをエスケープする必要があります。あなたのコードは、開始時にゼロ以上/文字、およびゼロ個以上\sスペースではなく、リテラル*文字のいずれかにマッチしてた

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

:あなたはまた、単に終了/前にリテラル*文字が欠落していますコメントの終わり。

デモ:

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

\ S +すべてのスペースなしの文字、\ S +スペース。

[31]: re.sub(r'\S+|\s+', "", s1) 
Out[31]: '' 
関連する問題