LINUX.ORG.RU

Перевести regex из sed в python

 ,


0

1

Имеется довольно большой скрипт, состоящий исключительно из команд с sed, в которых используются регулярные выражения. Синтаксис Python, насколько я понял, в регулярных выражениях несколько отличается. Есть ли какой-нибудь скрипт, позволяющий конвертировать эти структуры?

Если нет, дайте, пожалуйста, ссылку, где будут даны отличия по пунктам. Не приводите, пожалуйста, http://docs.python.org, от него пухнет башка, дайте что-нибудь, где это на пальцах разъясняется.

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

Вот такие вещи, например:

#"Claims 10, 16 предложен"
#"Claims 10, 16 предложена"
#"Claims 10, 16 предложено"
#"Claims 10, 16 предложены"
#"Claims 10,16,17,18 предложены"

	pattern="([C,c]laims ([0-9]+,* *)*) предложен[,а,о,ы]?"
	line=`echo "$line"|sed -r "s/$pattern/\1 are directed to/g"`

#"411-61-61(доб.)321"
	pattern="\([0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\)(доб\.)\(321\)"
	line=`echo "$line"|sed "s/$pattern/\1 \2 \3-\4/g"`

#"pages1"
	pattern="pages([0-9]*)"
	line=`echo "$line"|sed -r "s/$pattern/pages \1/g"`

#"the claims claim 6"
	pattern="the claims \(claim[,s]\? [0-9]*\)"
	line=`echo "$line"|sed "s/$pattern/\1/g"`

#"(495)531 65 68"
#"(495)-531-65-68"
#"499 240 6164"
#"(495) 411-61-60"
	pattern="\([,(]\?\)\(49[5,9]\)\([,)]\?\)[, -]\?\([0-9][0-9][0-9]\)[, -]\?\([0-9][0-9]\)[, -]\?\([0-9][0-9]\)"
	line=`echo "$line"|sed "s/$pattern/(\2) \4 \5 \6/g"`

#US 1234567
	pattern="\(US [0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([,,\x20, ,:,;,?,!,A]\)"
	line=`echo "$line"|sed "s/$pattern/\1,\2,\3\4/"`

Обычно полегче, но и такое попадается. По понятным причинам, вновь насиловать мозг неохота.

Deleted
()
Ответ на: комментарий от crunchy_crow

Спасибо, посмотрю, что там.

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