如何删除 Python 中的 ASP 仅评论块(在 Sublime Text 2 上)?
How to remove ASP comments-only blocks in Python (on Sublime Text 2)?
我正在玩 Python 正则表达式,以便清理为经典 ASP 页面生成的代码。
我需要删除单行或多行 ASP 评论块。
(ASP 注释行通常以 引用 开头)。
我的目标是匹配不包含可执行代码的块,但只匹配包含注释的块。
如果评论中有制表符或空格,我需要将这 3 个字符串替换为空:
字符串 1 :
<%' This multiline comment starts with two TAB characters after the quote
'and continues here
%>
字符串 2 :
<% 'This multiline comment starts with SPACES characters before the quote
'and continues here, with TABS before the quote
' and with spaces before and after the quote
%>
字符串 3 :
<%'This single line comment should at least be easy to remove%>
我尝试了以下正则表达式,但只取得了部分成功……:-/
output = re.sub(r'(<%(.*?)\')(.*?)(%>)', r'', output)
output = re.sub(r'<%(\t*|\s*)\'(.*)(%>)', r'', output)
你能给我一点建议吗?
非常感谢您的帮助:任何提示将不胜感激 ;-)
重新开始。
假设:
如果该行以单引号开头,则为注释。
获取所有包含 仅 引用行的块。
点 .
元字符 不 匹配换行符。
<%(?:\s*'.*)+\s*%>
格式化
<%
(?: \s* ' .* )+
\s*
%>
与您的所有样本相匹配。
编辑
不过为了安全起见,您应该在该点之前使用否定断言。
<%(?:\s*'(?:(?!%>).)*)+\s*%>
格式化
<%
(?:
\s* '
(?:
(?! %> )
.
)*
)+
\s*
%>
我正在玩 Python 正则表达式,以便清理为经典 ASP 页面生成的代码。
我需要删除单行或多行 ASP 评论块。 (ASP 注释行通常以 引用 开头)。
我的目标是匹配不包含可执行代码的块,但只匹配包含注释的块。 如果评论中有制表符或空格,我需要将这 3 个字符串替换为空:
字符串 1 :
<%' This multiline comment starts with two TAB characters after the quote
'and continues here
%>
字符串 2 :
<% 'This multiline comment starts with SPACES characters before the quote
'and continues here, with TABS before the quote
' and with spaces before and after the quote
%>
字符串 3 :
<%'This single line comment should at least be easy to remove%>
我尝试了以下正则表达式,但只取得了部分成功……:-/
output = re.sub(r'(<%(.*?)\')(.*?)(%>)', r'', output)
output = re.sub(r'<%(\t*|\s*)\'(.*)(%>)', r'', output)
你能给我一点建议吗? 非常感谢您的帮助:任何提示将不胜感激 ;-)
重新开始。
假设:
如果该行以单引号开头,则为注释。
获取所有包含 仅 引用行的块。
点 .
元字符 不 匹配换行符。
<%(?:\s*'.*)+\s*%>
格式化
<%
(?: \s* ' .* )+
\s*
%>
与您的所有样本相匹配。
编辑
不过为了安全起见,您应该在该点之前使用否定断言。
<%(?:\s*'(?:(?!%>).)*)+\s*%>
格式化
<%
(?:
\s* '
(?:
(?! %> )
.
)*
)+
\s*
%>