Поиск регулярного выражения мультилинии Netbeans

Я пытаюсь искать все теги ввода 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" />

то же регулярное выражение не работает.

Существует ли способ, которым это могло быть достигнуто?

15
задан Xubin 4 August 2010 в 15:54
поделиться

1 ответ

По умолчанию, метасимвол не совпадает с новыми строками. Должна быть опция "Single-line" или "DOTALL" или подобная, которая позволяет точке соответствовать каждому символу. Или вы можете добавить (?s) в начало регекса и получить тот же эффект только для этого регекса.

Но было бы лучше заменить .* на [^<>]*. В режиме DOTALL, .* будет пытаться поглотить весь остальной документ, что приведет к медленной работе и/или неправильным совпадениям, но [^<>]* никогда не будет пытаться совпасть дальше конца тега.

Кстати, если вы используете ['|"] для соответствия одинарной или двойной кавычке, избавьтесь от |. "ИЛИ" подразумевается в классе символов, поэтому вам нужно только ['"] (| будет просто соответствовать литералу |).

23
ответ дан 1 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: