Регулярное выражение для извлечения значений из строки в кавычках

#c# #regex

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

Вопрос:

Я пытаюсь найти способ извлечения параметров, которые находятся в кавычках, из строки.

Цель состоит в том, чтобы принять выражение типа:

 function1("var1","var2","var3","function2("func2Var1","func2Var2"))
 

И извлеките переменные:

 var1
var2
var3
function2("func2Var1","func2Var2")
 

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

1. Ваши кавычки не сбалансированы, потому что вы пропускаете одну перед последней ) .

2. Есть швы, что ваше регулярное выражение должно быть намного умнее, чем просто поиск кавычек. Он также должен знать о запятых и круглых скобках и о том, как все они взаимодействуют друг с другом.

Ответ №1:

Есть много вещей, которые вы можете сделать. Сначала я рекомендую вам загрузить и установить «Expresso» по следующей ссылке, это бесплатное приложение «registerware». Это тестовая площадка для регулярных выражений (не привязана к .NET, но является приложением .net), которая позволяет создавать и тестировать регулярные выражения в среде, подобной ide. В нем также есть учебные пособия.

Для тестирования это выражение по умолчанию — получать компоненты даты, разделенные косыми чертами.

Вы можете начать с чего-то вроде этого: (?([a-zA-Z] w *) s ) (?([a-zA-Z] w *) ) s*((?(«(?[^»] )»),s*) («(?[^»] )») s*)

Однако вам не следует пытаться анализировать, как ваш элемент 4, вложенные стили кавычек, поскольку для компьютера сложно определить, когда начинать или останавливаться.

Однако для такого рода проектов я бы рекомендовал конечный автомат, который лучше всего подходит для компиляторов.