Сопоставление определенного слова после двойных кавычек — c #, регулярное выражение

#c# #.net #regex

#c# #.net #регулярное выражение

Вопрос:

Я хочу сопоставить определенное слово, за которым следуют двойные кавычки. Я использую регулярное выражение @» bspecificS * id b», которое будет соответствовать всему, что начинается с specific и заканчивается id. Но я хочу что-то, что должно соответствовать

"specific-anything-id" (оно должно быть в двойных кавычках)

**<specific-anything-id>** — не должно совпадать
specific-"anything"-id — не должно совпадать

Ответ №1:

Вы можете включить двойные кавычки и использовать класс отрицаемых символов [^"] (соответствующий любому символу, но " ) вместо S (который также может соответствовать двойным кавычкам, поскольку он соответствует любому символу, не содержащему пробелов):

 var pattern = @"""specific[^""]*id""";
 

Здесь вам также не нужны границы слов.

Смотрите демонстрацию <a rel=»noreferrer noopener nofollow» href=»https:///regexstorm.net/tester?p=»specific[^»]*id»amp;i=»specific-anything-id»

specific-«anything»-id» rel=»nofollow»>регулярных выражений и демонстрацию C #:

 var s = ""specific-anything-id"  <specific-anything-id> specific-"anything"-id";
var matches = Regex.Matches(s, @"""specific[^""]*id""");
foreach (Match m in matches)
    Console.WriteLine(m.Value); // => "specific-anything-id"
 

Комментарии:

1. Рад, что это сработало для вас. Пожалуйста, также рассмотрите возможность голосования, если мой ответ оказался для вас полезным (см. Как проголосовать за переполнение стека? ) поскольку теперь у вас есть право голоса.

Ответ №2:

Выполните:

 "([^"] )"
 

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