У меня есть строка -Регулярного выражения для JSON
xyz":abc,"lmn
Я хочу, чтобы извлечь а. для чего это будет регулярное выражение?
Я пытаюсь это -
/xyz\":(.*?),\"lmn/
Но это не выборка какого-либо результата.
У меня есть строка -Регулярного выражения для JSON
xyz":abc,"lmn
Я хочу, чтобы извлечь а. для чего это будет регулярное выражение?
Я пытаюсь это -
/xyz\":(.*?),\"lmn/
Но это не выборка какого-либо результата.
В C# можно использовать
var regex = new Regex(@"(?<=xyz\"":).*?(?=,\""lmn)");
var value = regex.Match(@"xyz"":abc,""lmn").Value;
Примечание это делает использование C# дословной строка префикса @
это означает, что \
не рассматривается как экранирующий символ. Вам нужно будет использовать двойной "
, так что в строку будет включен один "
.
Это регулярное выражение использует правила сопоставления префикса и суффикса, чтобы вы могли получить соответствие без необходимости выбирать определенную группу из результата.
В качестве альтернативы вы можете использовать группу, соответствующую
var regex=new Regex(@"xyz\"":(.*?),\""lmn");
var value = regex.Match(@"xyz"":abc,""lmn").Groups[1].Value;
Вы можете проверить наличие матча, выполнив следующие действия
var match = regex.Match(@"xyz"":abc,""lmn");
var isMatch = match.Success;
, а затем следовать с либо match.Value
или match.Groups[1].Value
в зависимости от регулярных выражений ты использовал.
EDIT Собственно Ускользающий "
не требуется в C# регулярное выражение, так что вы можете использовать один из следующих вместо этого.
var regex = new Regex("(?<=xyz\":).*?(?=,\"lmn)");
var regex = new Regex("xyz\":(.*?),\"lmn");
Эти два не использовать дословный префикс строки, поэтому \"
переводится в только "
в регулярных выражениях давая регулярное выражение (?<=xyz":).*?(?=,"lmn)
или xyz":(.*?),"lmn
Дополнительно, если это весь матч строки, а не подстроку вы хотели бы получить одно из следующего.
var regex = new Regex("(?<=^xyz\":).*?(?=,\"lmn$)");
var regex = new Regex("^xyz\":(.*?),\"lmn$");
Когда я тест ' 'хуг ": ABC," lmn'.match (/ хуг \ ":.? (*), \" LMN /)' возвращает '[ "АБВ": азбука, "lmn", "abc"] '. Что вы пытаетесь, что не работает? – Joe
Можете ли вы предоставить, какую ошибку вы получите? Потому что [он работает] (http://regex101.com/r/aT5tE4). Также вы используете PHP или C#? Вы можете предоставить полный код, который вы используете. – HamZa
вам не нужен ведущий и следующий '/' с aC# regex, может быть, ваша проблема –