Символ для любого числа любых символов в регулярном выражении?


142

Мне интересно, есть ли символ для любого числа (включая ноль) любых символов

Ответы:


233
.*

.является любым символом, *означает повторение ноль или более раз.


2
Хороший ответ, просто добавлю, смотрите здесь: download.oracle.com/javase/1.4.2/docs/api/java/util/regex/…
— Стив

11
Подлый улов - это то, .*что не соответствует символу новой строки ( '\n'). Смотрите этот вопрос для получения дополнительной информации по этой теме.
— Капитан Мэн

33

Вы можете использовать это регулярное выражение (любой пробел или любой не пробел) столько раз, сколько возможно, вплоть до 0.

[\s\S]*

Это выражение будет соответствовать как можно меньше, но столько, сколько необходимо для остальной части выражения.

[\s\S]*?

Например, в этом регулярном выражении [\s\S]*?Bбудет соответствовать aBв aBaaaaB. Но в этом регулярном выражении [\s\S]*Bбудет соответствовать aBaaaaBв aBaaaaB.


Есть ли разница между [\ s \ S] и.?
— Linqu

8
@linqu, .иногда не будет совпадать \n( перевод строки), в зависимости от параметра многострочного текста, но [\s\S]будет соответствовать любому символу.
— Агент-J

19

Ты имеешь ввиду

.*

. любой символ, кроме символа новой строки, в режиме точки ввода он также включает символы новой строки

* любое количество предыдущего выражения, в том числе 0 раз


4

Я бы использовал .*. .соответствует любому символу, *означает 0 или более вхождений. Вам может понадобиться переключатель DOTALL для регулярного выражения, чтобы захватить новые строки с ..


-7

Да, есть один, это звездочка: *

a* // looks for 0 or more instances of "a"

Это должно быть описано в любом учебнике или документации по регулярным выражениям Java, которые вы ищите.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.