2013-10-16 3 views
0

У меня есть строка, как:соответствие с регулярным выражением

{ 
    { SomeTextNoQuotes, "Some Text's", "Some Text" }, 
    { SomeTextNoQuotes, "Some Text's", "Some Text" }, 
    { SomeTextNoQuotes, "Some Text's", "Some Text" }, 
    { SomeTextNoQuotes, "Some Text's", "Some Text" }, 
    { SomeTextNoQuotes, "Some Text's", "Some Text" }, 
} 

Как я могу соответствовать последнему , "Some Text" каждой строки, как раз перед }? Кстати, это в Sublime Text, который я пытаюсь сделать. Значения не согласуются, как у меня есть здесь, и у меня есть несколько сотен строк для замены.

Я пробовал , ".*", но это соответствует , "Some Text's, "Some Text".

ответ

1

несколько способов, вы могли бы пойти об этом.

Вариант #1 мы сопоставляем первый сет, а затем захватить второй в том числе запятая в группе \1 или $1

"[^"]*"(, "[^"]*") 

См live demo

вариант #2 мы используем взгляд вперед, чтобы найти, что соответствующий комплект.

, "[^"]*"(?= \}) 

См live demo

Опция #3 мы можем сопрягать всю строку и наш матч входит в группу захвата \1 или $1

\{[\S\s]*?(,\s+"[^"]*")\s+\} 

См live demo

+0

# 2 работал отлично, не уверен, как использовать группы в сублимах заменить.Но большой +1 для этих живых демо и этот сайт, я никогда не видел его раньше, но он выглядит как отличный способ, чтобы, наконец, изучить регулярные выражения! – user1960364

+1

См. Http : //stackoverflow.com/questions/11819886/regular-expression-search-replace-in-sublime-text-2 для дальнейшего использования в группах захвата с заменой. – hwnd

1

Я не использую Sublime Text, но если он поддерживает lookaheads, , ".[^"]*"(?= }) должен сделать трюк.

+0

@ 今 草 顿 웃: Нет, я не могу, поскольку OP явно хочет, чтобы он был включен в матч. – Amadan

+0

Это не совсем сработало, однако избежать этого не удалось. ',". [^ "] *" (? = \}) '.. Спасибо – user1960364

0

Следующие должны работать (используя предпросмотр):

("Some Text")(?= \}\,) 

Захваченный текст будет найден в первой согласованной группе

Ссылка на Fiddle

+0

Это не сработало, поскольку я сказал:« Значения не согласуются, как будто я их здесь ». Спасибо в любом случае. :) – user1960364

Смежные вопросы