Я пытаюсь искать все теги ввода HTML с типом 'текста' в Netbeans 6.9.
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, .*
будет пытаться поглотить весь остальной документ, что приведет к медленной работе и/или неправильным совпадениям, но [^<>]*
никогда не будет пытаться совпасть дальше конца тега.
Кстати, если вы используете ['|"]
для соответствия одинарной или двойной кавычке, избавьтесь от |
. "ИЛИ" подразумевается в классе символов, поэтому вам нужно только ['"]
(|
будет просто соответствовать литералу |
).