|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
Нужно заменить все слова между запятыми, не заключенные в кавычки, ими же, но в кавычках. Не могу выбрать слова без кавычек. Вроде, нужно look-ahead использовать, но он не укладывается в мою голову никак. Подскажете? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 20:50 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny, Я бы сделал в два захода обычной заменой без регулярок: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 21:02 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
Можно и в обратном порядке - сначала удалить все кавычки, а потом расставить их. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 21:03 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
miksoft, Это да, я тоже хотел сплитом обойтись и заменой. Но пользователи будут вставлять запятые между кавычками, и тут без регулярки уже никак - нужно будет парные кавычки вычислять. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 21:45 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny Но пользователи будут вставлять запятые между кавычками Рассказывайте уж всю задачу, а не ваше видение ее решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 21:52 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
miksoft, Ок, есть задача фильтровать таблицы, задавая список возможных значений. Чаще это делается с фронта по api и там всегда есть кавычки, потому что фильтруемые значения могут содержать запятые. Иногда пользователь хочет выбрать руками несколько значений и задать фильтр, а я ему хочу облегчить задачу - не заставлять ставить кавычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 22:27 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny, Т.е. строку "in(api,mp)" пользователь вводит руками? И там может быть что-то типа "in(aa,'bb,cc')" ? Тогда я бы сделал свою функцию с циклом и проходом по строке (простенький конечный автомат). Заодно будет можно четко диагностировать ошибки синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 22:38 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
miksoft drynny, Т.е. строку "in(api,mp)" пользователь вводит руками? И там может быть что-то типа "in(aa,'bb,cc')" ? Тогда я бы сделал свою функцию с циклом и проходом по строке (простенький конечный автомат). Заодно будет можно четко диагностировать ошибки синтаксиса. Пользователь может ввести руками, да. И там не будет ни кавычек, ни запятых. А вот по api может прилететь in('Васин, Пупкин и партнеры', 'Петров-Дебоширов') ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2021, 22:59 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
Проще будет забыть о регулярках и сделать потоковый разбор, символ за символом. За примерами - смотри как CSV читается. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 05:57 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
White Owl Проще будет забыть о регулярках и сделать потоковый разбор, символ за символом. За примерами - смотри как CSV читается. Мне кажется, что не будет проще. На регулярках нужно написать ещё несколько кракозябр всего, а тут надо целый алгоритм городить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 13:55 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny White Owl Проще будет забыть о регулярках и сделать потоковый разбор, символ за символом. За примерами - смотри как CSV читается. Мне кажется, что не будет проще. На регулярках нужно написать ещё несколько кракозябр всего, а тут надо целый алгоритм городить. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Хотя потоковый, посимвольный разбор все равно проще будет и для понимания и для поддержки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 15:32 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
White Owl drynny пропущено... Мне кажется, что не будет проще. На регулярках нужно написать ещё несколько кракозябр всего, а тут надо целый алгоритм городить. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Хотя потоковый, посимвольный разбор все равно проще будет и для понимания и для поддержки. Спасибо! Взбодрили. Вот такое в итоге состряпал: ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 16:58 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
Но есть косяк - кириллица как-то влияет на границы слова, вроде, ошибочно захватывается ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 17:13 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny Но есть косяк - кириллица как-то влияет на границы слова, вроде, ошибочно захватывается Ты на каком языке пишешь? Тамошняя re умеет в юникод? Твоя исходная строка в юникоде? Повторюсь еще раз: в данной задаче проще и надежней сделать посимвольный разбор строки. Регулярки конечно круть, но далеко не панацея. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 17:38 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
White Owl drynny Но есть косяк - кириллица как-то влияет на границы слова, вроде, ошибочно захватывается Ты на каком языке пишешь? Тамошняя re умеет в юникод? Твоя исходная строка в юникоде? Повторюсь еще раз: в данной задаче проще и надежней сделать посимвольный разбор строки. Регулярки конечно круть, но далеко не панацея. Точняк, включил юникод, кириллица норм, но есть проблема с пробелами. Надо что-то вместо \b использовать, т.к. тут границы слов есть внутри текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 17:46 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
drynny Точняк, включил юникод, кириллица норм, но есть проблема с пробелами. Надо что-то вместо \b использовать, т.к. тут границы слов есть внутри текста. И чем плохо выражение которое я показал? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 17:59 |
|
Как написать регулярное выражение, не захватив фразы в кавычках
|
|||
---|---|---|---|
#18+
White Owl drynny Точняк, включил юникод, кириллица норм, но есть проблема с пробелами. Надо что-то вместо \b использовать, т.к. тут границы слов есть внутри текста. И чем плохо выражение которое я показал? \b уже не годится, я понял. Твоё выражение я не могу применить в preg_replace (у меня там бэкенд на PHP). Одна команда же лучше, чем алгоритм. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2021, 18:25 |
|
|
start [/forum/moderation_log.php?user_name=Aleksandr_Z]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 4684ms |
total: | 4888ms |
0 / 0 |