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

142

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

Skizit
источник

Ответы:

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.

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

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

.*

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

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

Stema
источник
4

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

печаль
источник
-7

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

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

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

Loduwijk
источник