正则表达式
2019-08-20 本文已影响0人
VinZZZZ
官方手册: https://docs.python.org/zh-cn/3.7/library/os.path.html
验证网站:
https://regexr.com/4je42 (比较清晰明了,但不支持re.MULTILINE 多行的验证)
https://regex101.com (支持多行验证)
过滤单行和多行注释
def filter_useless_chars(content):
# 移除单行注释和多行注释 (已加了防止如 str = "sfasfasdf//fafasdf"等的误删判断)
def _remove_comments(string):
pattern = r"(\".*?\"|\'.*?\')|(/\*.*?\*/|//[^\r\n]*$)"
regex = re.compile(pattern, re.MULTILINE | re.DOTALL)
def _replacer(match):
if match.group(2) is not None:
return ""
else:
return match.group(1)
return regex.sub(_replacer, string)
file_str = _remove_comments(content)
return file_str
匹配任意字符(不包括换行符).
匹配任意字符(包括换行符): [\s\S]
或者在Python中用如re.compile(pattern, re.DOTALL)
的 re.DOTALL
来标记,此时.
可以匹配任意字符(包括换行符)。