регулярное выражение совпадение строки с шаблоном

1

Я новичок в регулярном выражении.

Я хочу архивировать, чтобы проверить, соответствует ли текст строки следующему шаблону.

"xxx(name="yyy", country="yyy")"

Отредактировано: xxx могут быть буквами или номерами любой длины, но должны начинаться с буквы. yyy могут быть любыми символами любой длины. Между "," и "страной" может быть ноль или любое количество пробелов.

Например, следующая допустимая строка

"TargetVal(name="White House", country="US")"

следующие строки недействительны

"TargetVal(name="White House", country="US")+546+!!!"
"343TargetVal(name="White House", country="US")"
"!TargetVal(name="White House", country="US")"
"CenterVal(name="Green House",789808 country="US")"
"CenterVal(name="Green House", country="US", dfjl)"
"OuterVal(name=Green House, country="US")"

Вот что я сделал до сих пор в С#

var formula = @"TargetVal(name=""White House"", country=""US"")";
var pattern = @"\w\(name=""\w"",\sccy=""\w""\)";
ismatching= Regex.IsMatch(formula, pattern, RegexOptions.IgnoreCase);

Очевидно, что он не работает против всех указанных правил. Может кто-нибудь дать какой-то намек?

Теги:
string
pattern-matching
match

2 ответа

0
Лучший ответ

Вы можете использовать следующее регулярное выражение.

var rgx = new Regex(@"(?i)^[a-z][a-z0-9]+\(name="".*?"",\s*country="".*?""\)$");

См. Demo

  • 0
    Спасибо, это работает.
0

попробуйте var pattern = "^[a-zA-Z][a-zA-Z0-9 ]+\\(name=\"[a-zA-Z][a-zA-Z0-9 ]+\",\\s*country=\"[a-zA-Z][a-zA-Z0-9 ]+\"\\)$";

Я сделал предположение, что ваш xxx не только существует из букв и цифр, но может включать пробелы (как White House их включает).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню