Подтвердить что ты не робот

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" />

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

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

4b9b3361

Ответ 1

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

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

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