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


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.