Ищу регулярное выражение, чтобы соответствовать п нулей, а затем 1. например:Regex п 0, а затем 1
0000100 -> matches
00200 -> does not math
Я думал, что это было что-то вроде этого:
var regex = new Regex(@"[0]*[2-9]+");
Ищу регулярное выражение, чтобы соответствовать п нулей, а затем 1. например:Regex п 0, а затем 1
0000100 -> matches
00200 -> does not math
Я думал, что это было что-то вроде этого:
var regex = new Regex(@"[0]*[2-9]+");
Linq (и не регулярное выражение):
string source = "0001";
bool isValid = source
.SkipWhile(c => c == '0')
.FirstOrDefault() == '1';
Если вы настаиваете на регулярное выражение:
bool isValid = Regex.IsMatch(source, "^0*1");
В обоих случаях нулевой или более 0
с последующим 1
^[0]+[1]
является то, что вы хотите:
^
начало линии
[0]
матч 0
+
по крайней мере один раз
[1]
матч 1
Вы также можете добавить $
в конце концов, если вы хотите, чтобы соответствовать полной линии.
Примечание: если вы хотите, чтобы быть в состоянии соответствовать п = 0 (т.е. только 1), вам необходимо: ^[0]*[1]
Примечание: кронштейны []
являются необязательными, поскольку они содержат только один символ, но я думаю, они облегчают чтение. Таким образом, вы можете получить ^0+1
, если хотите, например.
Смотрите также http://regexstorm.net/reference (например) для завершения C# регулярное выражение ссылки
Я не думаю, что OP хочет, чтобы 1 был в конце строки (согласно предоставленному примеру для совпадений) – UnholySheep
Почему нужно использовать '[]'? –
@ UnholySheep только что заметил, что обновил мой ответ. Спасибо – simonalexander2005
Там нет необходимости в регулярном выражении здесь: левая подрезки строку из 0
, и если оно не равно нулю или пуст, проверьте первый символ ,
var s = "00001";
if (!string.IsNullOrEmpty(s.TrimStart('0')) &&
s.TrimStart('0').Substring(0, 1) == "1")
{
/* Valid, otherwise, not */
}
Это будет работать, если у вас есть цифры в начале строки и нужно просто логический результат.
Вы регулярное выражение соответствует нулю или более 0, за которым следует одна или несколько цифр от 2 до 9. Это звучит как противоположность тому, что вы пытаетесь сделать – UnholySheep
Где находится '1' в вашем регулярном выражении? – Heinzi
Что вы подразумеваете под n нулями? Это определено или любое количество нулей? – Prajwal