Соответствие регулярному выражению для шаблона dddG-xyz - PullRequest
2 голосов
/ 20 марта 2019

Моя попытка:

string exp1 = "\\d+G-";
string z = Regex.Match("CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no",exp1).Value;
Console.WriteLine(z);

Я хочу сопоставить 314G-VK1 из строки z .

Где,

314 является десятичным числом и может быть любым числом цифр. скажем 125632588 .

G- является константой.

И VK1 может быть символьным или десятичным, но длина будет только 3, скажем er5 .

Как мне соответствовать требованиям?

Из моего кода я получаю только вывод 314G- . Я попробовал несколько способов, но это мне больше не помогло.

Ответы [ 3 ]

3 голосов
/ 20 марта 2019

Вы почти правы, но вам просто нужно добавить [0-9a-zA-Z]{3} после G- .

string exp1 = "\\d+G-[0-9a-zA-Z]{3}";
string z = Regex.Match("CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no", exp1).Value;
Console.WriteLine(z);

Проверьте демо здесь

3 голосов
/ 20 марта 2019

Вы можете использовать

string exp1 = @"\d+G-\w{3}";

См. Демоверсию regex

Шаблон \w{3} будет соответствовать символам из 3 слов, то есть главным образом букв, цифр и подчеркиваний. Вы можете уточнить это, если это необходимо, например, чтобы соответствовать только 3 заглавным буквам или цифрам ASCII, вы можете использовать [A-Z0-9]{3}. Чтобы включить строчные буквы, добавьте их в класс символов [A-Za-z0-9]{3}.

Регулярное регулярное выражение :

enter image description here

Результаты тестирования регулярных выражений .NET:

enter image description here

C # код демо :

string exp1 = @"\d+G-\w{3}";
string s = "CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no";
string z = Regex.Match(s, exp1)?.Value;
Console.WriteLine(z); // => 314G-VK1
0 голосов
/ 20 марта 2019

Попробуйте: строка exp1 = @ "\ d + G- [a-zA-Z0-9] {3}"

[a-zA-Z0-9] {3} будет соответствоватьБуквенно-цифровая строка из 3 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...