|
Varlo |
Написано
Dec 7 2010, 17:02. Номер поста в теме:
1 |
|
|
Advanced Member
Ответов: 1108
|
Подскажите, как написать RegEx, который бы распознавал строку с двойноми кавычками внутри. Например, в таком выражении: sdfsd sdf "P.P.U.H. "COLD" Sp.J." sdfsdfs sdfsd "AAABBB" sdfsdfsd должен поймать: P.P.U.H. "COLD" Sp.J. AAABBB
|
|
Alexander |
Написано
Dec 7 2010, 17:33. Номер поста в теме:
2 |
|
|
Full Member
Ответов: 929
|
Если программист решает проблему при помощи регулярных выражений то у него автоматически появляется ещё одна проблема
Will code HTML for food
Добро всегда побеждает зло. Очень зло. |
|
Dust |
Написано
Dec 7 2010, 17:34. Номер поста в теме:
3 |
|
|
Admin
Ответов: 18936
|
Ниче не понял.... Что по вашему строка? Если ограничитель начала-концы строки двойная кавычка, ее не должно быть в середине строки.
Ты скажи мне мой хороший, и еще чего нибудь.... |
|
Varlo |
Написано
Dec 7 2010, 17:40. Номер поста в теме:
4 |
|
|
Advanced Member
Ответов: 1108
|
Должен ловить строки, ограниченные внешними кавычками. То, что внутри - возвращать, даже с двойными кавычками. Согласен, задача нетривиальная.
|
|
ViPer |
Написано
Dec 7 2010, 17:41. Номер поста в теме:
5 |
|
|
Advanced Member
Ответов: 1807
|
Varlo, все довольно просто - решение \"(.*)\" В pcre по умолчанию * "жадный" повторитель, поэтому и имеем нужный вам результат. Вот тут можно потестить http://www.pcre.ru/eval/%5C%22(.*)%5C%22%4...%22%20sdfsdfsd/
|
|
Dust |
Написано
Dec 7 2010, 17:42. Номер поста в теме:
6 |
|
|
Admin
Ответов: 18936
|
Varlo, Тогда у вас 1 строка: "P.P.U.H. "COLD" Sp.J." sdfsdfs sdfsd "AAABBB"
Добавлено:(Dec 7 2010, 19:42) ViPer, Ага - только это немного не то
Ты скажи мне мой хороший, и еще чего нибудь.... |
|
ViPer |
Написано
Dec 7 2010, 17:50. Номер поста в теме:
7 |
|
|
Advanced Member
Ответов: 1807
|
Dust, ага, оно ловит как раз то, что ты написал )
Добавлено:(Dec 7 2010, 18:50) Может вот так?
|
|
Varlo |
Написано
Dec 7 2010, 17:55. Номер поста в теме:
8 |
|
|
Advanced Member
Ответов: 1108
|
Да, такое выражение вроде ловит: \"([^"]*"?[^"]*"?[^"]*)"
ViPer, Спасибо, Саня!
|
|
Dust |
Написано
Dec 7 2010, 17:56. Номер поста в теме:
9 |
|
|
Admin
Ответов: 18936
|
Я не очень вкурил почему экранируется только первые кавычки?
Ты скажи мне мой хороший, и еще чего нибудь.... |
|
ViPer |
Написано
Dec 7 2010, 18:04. Номер поста в теме:
10 |
|
|
Advanced Member
Ответов: 1807
|
QUOTE (Varlo @ Сегодня, 18:55) | Да, такое выражение вроде ловит: \"([^"]*"?[^"]*"?[^"]*)"
ViPer, Спасибо, Саня! | Незачто, только я не Саня ;-)
Dust, да их там вообще не надо экранировать, просто не везде удалил
|
|
Dust |
Написано
Dec 7 2010, 18:06. Номер поста в теме:
11 |
|
|
Admin
Ответов: 18936
|
ViPer, неэкранирование спецсимволов может привести к совершенно фантастическим результатам...
Ты скажи мне мой хороший, и еще чего нибудь.... |
|
Varlo |
Написано
Dec 7 2010, 18:36. Номер поста в теме:
12 |
|
|
Advanced Member
Ответов: 1108
|
Нет, не все ловит \"([^"]*"?[^"]*"?[^"]*)" Такое не ловит: цвет="Металик" ИЛИ цвет="Белый" Поймало Металик" ИЛИ цвет="Белый.
|
|
ViPer |
Написано
Dec 7 2010, 18:47. Номер поста в теме:
13 |
|
|
Advanced Member
Ответов: 1807
|
Varlo, так а что должно было ловить? Ты б объяснил что ты хочешь выловить, примеры РЕАЛЬНЫХ строк и тд.
|
|
Varlo |
Написано
Dec 7 2010, 18:55. Номер поста в теме:
14 |
|
|
Advanced Member
Ответов: 1108
|
цвет="Металик" ИЛИ цвет="Белый" - ловит Металик и Белый "P.P.U.H. "COLD" Sp.J." ИЛИ sdfsdfs sdfsd "AAABBB" - ловит P.P.U.H. "COLD" Sp.J. и AAABBB
|
|
ViPer |
Написано
Dec 7 2010, 18:57. Номер поста в теме:
15 |
|
|
Advanced Member
Ответов: 1807
|
то есть я так понимаю некий разделитель ИЛИ там всегда присутствует?
|
|
Страниц: (2) [1] 2 |