我正在尝试在Netbeans 6.9中搜索所有类型为“text”的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" />
相同的正则表达式不起作用。
有没有办法实现这一目标?
答案 0 :(得分:23)
默认情况下,.
元字符与换行符不匹配。应该有一个名为“单行”或“DOTALL”或类似的选项,让点匹配每个字符。或者您可以将(?s)
添加到正则表达式的开头,并为该正则表达式获得相同的效果。
但最好将.*
替换为[^<>]*
。在DOTALL模式下,.*
将尝试吞噬文档的其余部分,从而导致性能降低和/或匹配错误,但[^<>]*
将永远不会尝试匹配标记的末尾。< / p>
顺便说一句,如果您使用['|"]
来匹配单引号或双引号,请删除|
。 “OR”隐含在字符类中,因此您只需要['"]
(|
只会匹配文字|
)。