LINUX.ORG.RU

[regexp] Помогите составить

 


0

1

Обещаю прокурить regexp'ы по полной, но сейчас времени в обрез. Помогите, пожалуйста. Пишу на Java - нужно пропарсить файл с паскалевскими исходниками, среди которых попадаются вот такие «конструкции»:

$blahblah
Т.е. лучше так:
$first_match
WHILE ( i <> 500 ) DO
    ...
    $second_match
    ...
END;
...
$last_match

Всю эту красоту (файл с исходниками) читаю через буфер и обрабатываю. Необходимо засплитить этот буффер по этим $wherever_this_bullshit_stands при помощи regexp.

Спасибо.

Ответ на: комментарий от Zhbert

[$]\b

Мое подсознание выдало что-то такое, регекспов не писал давно, могу ошибаться. Типа сначала ищем символ $, потом оставшееся целое слово до пробела.

Zhbert ★★★★★
()
Ответ на: комментарий от Insomnium

Тащем-та, слово после $ оно нашло, а вот сам $ нет.

Zhbert ★★★★★
()

А нельзя построчно обработать?

Еще не очень понятно, чем лучше огораживать (может нужны и внутри-строчные варианты), вдруг и \n сойдет: «\n\$[[:alnum:]]+\n» (alnum posix-ый [A-Za-z0-9])

n01r ★★
()

суть задачи вообще не вкурил…

емнип, в жабе регекспы отличаются от перловых по полдюжины нюансам, связанным обработкой сверхсложных и, с точки зрения сана, не оптимальных конструкций. т.е. примерно на 99% жабовские регекспы соответствуют перловым, о чём в жабодоке и сказано… но это всё было вступление :)

> $blahblah

"(\\$\\w+)"?

arsi ★★★★★
()
Ответ на: комментарий от arsi

Solved

Забыл отписать. В итоге получилось следующее: (\\$\\w+)(\\([^\\$]*\\))

Спасибо.

Insomnium ★★★★
()
Ответ на: комментарий от n01r

Регулярками имхо кошернее, чем парсить «ручками».

Insomnium ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.