我们可以使用不以模式结束的正则表达式匹配一行 -
>\s*
换句话说,> \ s * $ 匹配以> 结尾的行,后跟零或更多空格。我想找到那些与之匹配的行。
我会在ANT构建期间使用它删除一些行。
的解决方案的 ^(?!。> \ s $)。*由zx81提供
已添加: 基本上我试图在构建期间删除歌曲行注释。
(?<!http:|https:)\/\/.*$
以上正则表达式能够做到这一点(我正在考虑引号内没有评论)。但我不想捕捉 -
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - No match
<% // END: Modified %> - No match
实施例
http://example.com - No match
abc // qqqqqqqqqq - Match
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - No Match
// comment - Match
/* comment */ program //comment - Match
var ok = "not really"; - No Match
<% // END: Modified %> - No match
这是我的目的。对不起,我在问我原来的问题后补充了这个条件。你们也可以帮助我吗?
根据zx81提供的解决方案 - 在regex下面工作 -
^(?!<!DOCTYPE[^>]*>\s*$)(?!<%[^>]*%>\s*$).*(?<!http:|https:)\/\/.*$
但它与整条线相匹配。但我只想在//
之后捕获字符串然而,我原来的问题已经回答了,我接受了答案。
答案 0 :(得分:3)
在多行模式下使用它(非Ruby风格的m
标志):
^(?!.*>\s*$).*
查看the demo
中的匹配项设置m
标志,具体取决于风味:(?m)^(?!.*>\s*$).*
或/^(?!.*>\s*$).*/m
<强>解释强>
(?m)
启用了多行模式,允许^
和$
在每一行匹配^
锚点断言我们位于字符串的开头$
锚点断言我们位于字符串的末尾(?!.*>\s*$)
断言后面的内容不是任何字符>
,可选空格和行尾.*
匹配编辑问题的选项2
同样的想法,两个外观。
^(?!<!DOCTYPE[^>]*>\s*$)(?!<%[^>]*%>\s*$).*
<强>参考强>