qregexp (не получается составить шаблон)

Модератор: Модераторы разделов

Аватара пользователя
Liksys
Сообщения: 2910

qregexp

Сообщение Liksys »

Нужно составить шаблон, который бы обнаруживал выражения типа:

Код: Выделить всё

(несколько слов)

Написал вот что:

Код: Выделить всё

\\(([^\\(]*)\\)
, работает только когда в скобках одно слово. Да и вообще по-моему неверно составлено.
Може то подскажет?
Спасибо сказали:
Аватара пользователя
Хрюндель
Сообщения: 304
ОС: Сам не знаю

Re: qregexp

Сообщение Хрюндель »

Код: Выделить всё

import re
a = open("file.txt","r")
for i in a:
    if re.findall("^\([\w\s\d]+\)$",i):
        print i,
Спасибо сказали:
Аватара пользователя
Хрюндель
Сообщения: 304
ОС: Сам не знаю

Re: qregexp

Сообщение Хрюндель »

Я конечно не знаю как там точно идёт qregex, но думаю он немногим от питоновского отличается..
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: qregexp

Сообщение Liksys »

неа, нифига не работает :(
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: qregexp

Сообщение sergio »

Darth Liksys писал(а):
12.09.2007 20:13
Нужно составить шаблон, который бы обнаруживал выражения типа:

Код: Выделить всё

(несколько слов)

Написал вот что:

Код: Выделить всё

\\(([^\\(]*)\\)
, работает только когда в скобках одно слово. Да и вообще по-моему неверно составлено.
Може то подскажет?

Брр, наск понимаю, скобка не та, т.е. внутри [] должна быть ^) а не ^(
т.е.

Код: Выделить всё

 sed -r 's/[(][^)]+[)]/XXX/'

не?
Эта фигня заменяет неск слов в скобках на ХХХ (вместе со скобками)...
Про остальное не скажу, у меня там от бэкслейшей в глазах рябит. :crazy:

Зы: поправил чуток, баг был.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: qregexp

Сообщение Voice »

Не знаю правда как там в Питоне но в Перле и Баше вот так:

Код: Выделить всё

[viacheslav@debian fac] $ echo '(несколько слов)' | grep '\(.*\)'
(несколько слов)
[viacheslav@debian fac] $
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: qregexp

Сообщение diesel »

Voice писал(а):
13.09.2007 01:00
Не знаю правда как там в Питоне но в Перле и Баше вот так:

Код: Выделить всё

[viacheslav@debian fac] $ echo '(несколько слов)' | grep '\(.*\)'
(несколько слов)
[viacheslav@debian fac] $

смотря что надо:

~$ echo "(несколько слов)(и еще пара)"|grep -oE '\(.*?\)'
(несколько слов)(и еще пара)

~$ echo "(несколько слов)(и еще пара)"|grep -oE '\([^)]*\)'
(несколько слов)
(и еще пара)
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: qregexp

Сообщение Liksys »

Нет, по-любому никак. Это наверно надо именно особенности QRegExp юзать.
Спасибо сказали: