我正在尝试在 Netbeans 6.9 中搜索所有类型为“文本”的 HTML 输入标签。
Netbeans 是否支持使用具有跨多行不同搜索条件的正则表达式搜索字符串,还是仅在单行内有效?
这个正则表达式
<input.*type=['"]text['"].*/>
当整个标签及其属性像这样写在一行中时有效
<input name="data[something]" id="some_id" value="some_value" type="text" />
但是因为我避免编写长代码行并因此破坏它们
<input name="data[something]" id="some_id"
value="some_value" type="text" />
相同的正则表达式不起作用。
有没有办法做到这一点?
最佳答案
默认情况下,.
元字符与换行符不匹配。应该有一个名为“Single-line”或“DOTALL”或类似的选项,让点匹配每个字符。或者您可以添加 (?s)
到正则表达式的开头,并为该正则表达式获得相同的效果。
但是最好更换.*
与 [^<>]*
.在 DOTALL 模式下,.*
将尝试吞噬整个文档的其余部分,导致性能缓慢和/或不正确的匹配,但 [^<>]*
永远不会尝试在标签末尾之外进行匹配。
顺便说一句,如果您使用的是 ['|"]
要匹配单引号或双引号,去掉 |
. “OR”隐含在字符类中,因此您只需要 ['"]
( |
将简单地匹配文字 |
)。
关于regex - Netbeans 多行正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400869/