2009-09-02 4 views
1

Мне нужна помощь с некоторыми проблемами регулярного выражения, которые у меня возникают. Во-первых, двойные кавычки ".Проблемы с регулярным выражением

Все, что угодно между "" должно соответствовать. Следующая проблема. Мне нужно сопоставить все, что начинается с ', до конца строки \n или <br />.

Я пробовал все виды, но ничто не похоже на это. Есть идеи?

Извините, ребята, я понял, что мне нужны котировки между &quot; и &quot;.

+0

Какой язык вы используете? – Nosrama

+0

Должны ли матчи быть многострочными? – Nosrama

+1

PHP no multi line –

ответ

0

Try:

двойные кавычки:

\&quot\;(.*?)\&quot\; 

Одинарная кавычка до конца строки или <br/>:

\'(.*)(\<br|$) 
2

Simplistic:

"[^"]*" 

будет соответствовать что-нибудь между двойными кавычками, хотя он не будет работать с уцелевшими в двойных кавычках, такие как

"Abc\"Def" 

Для одинарной кавычки в EOL, вы можете использовать

'.*$ 

Update: Sylverdrag-х сделал действительную точку; для соответствия между котировками вам потребуется

"([^"]*)" 

а затем получить первую подгруппу матча. Я вижу, что вопрос был обновлен, чтобы упомянуть, что следует использовать &quot; - мой ответ можно адаптировать к этому достаточно легко.

+0

Ах, простите, " –

+0

Это также будет соответствовать котировкам. – Sylverdrag

+0

Лучше, но "([^"] *) "по умолчанию жадно. Вы должны добавить?, Чтобы получить желаемый результат:" ([^ "] *?)" – Sylverdrag

0

ничего между кавычками

/"(.*)"/ 

от 'до конца строки

/'(.*)$/ 
0

Попробуйте эти регулярные выражения:

/&quot;(.*?)&quot;/s 
/'.*?(?=\n|<br \/>)/m 
0

Чтобы получить немного больше фанк и матч только то, что находится внутри двойных кавычек, но не сами цитаты:

(?<=").*?(?=") 
+0

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

+0

Достаточно честный, но сделать его неровным или могут быть некоторые сюрпризы. – Sylverdrag

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