#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:
Выполните:
"([^"] )"
сопоставленная группа будет содержать нужный вам идентификатор.