Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.
Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).
Пример
var name = p?.Spouse?.FirstName;
эквивалентен:
if (p != null)
{
if (p.Spouse != null)
{
name = p.Spouse.FirstName;
}
}
В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.
В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.
Для получения дополнительной информации: Операторы с нулевым условием
.*
.
- любой символ, *
означает повторяющееся ноль или более раз.
Вы можете использовать это регулярное выражение (любые пробелы или любые небелые пробелы) как можно дольше и вплоть до 0.
[\s\S]*
Это выражение будет соответствовать как можно меньше, но как многие, необходимые для остальной части выражения.
[\s\S]*?
Например, в этом регулярном выражении [\s\S]*?B
будет соответствовать aB
в aBaaaaB
. Но в этом регулярном выражении [\s\S]*B
будет соответствовать aBaaaaB
в aBaaaaB
.
Ответ на этот вопрос должен быть в любом учебнике или документации по регулярному выражению Java, которые вы просматриваете. Да, есть один, это звездочка. *
a* // looks for 0 or more instances of "a"
Я просто googled «java regex repeat zero or more times», и первый хит отвечает на ваш вопрос, как, вероятно, 95% других хитов.
Я бы использовал .*
. .
соответствует любому символу, *
означает 0 или более случаев. Вам может понадобиться переключатель DOTALL в регулярное выражение для захвата новых строк с помощью .
.
Вы имеете в виду
.*
.
любой символ, кроме символа новой строки, с точечным режимом он включает также символы новой строки
*
любую сумму предыдущего выражение, включающее 0 раз