Почему это выражение sed RegEx отсекает цифры при определенных обстоятельствах? - PullRequest
0 голосов
/ 24 августа 2010
sed -e 's/ *-\{0,1\},\{0,1\} *[Pp][Aa]\{0,1\}[Rr]\{0,1\}[Tt].\{0,1\} *\([0-9]\{1,\}\) *$/ (\1)/'

Я передаю названия через iTunes AppleScript. Это должно преобразовать любой заголовок с обозначением части в конце в формат в скобках

Например, Best of Both Worlds, Part 2 становится Best of Both Worlds (2).

Проблема возникает, когда между Part и цифрой (-ами) пропущен пробел.

  • Если это одна цифра, она работает нормально. Blah part2 становится Blah (2)
  • Более одной цифры, и первая цифра обрезается: Blah pt123 становится Blah (23)

Я свободно признаю, что я не эксперт по RegEx, но я копался в книге «Освоение регулярных выражений» и искал в Google без удачи. Есть идеи, что здесь не так? Спасибо!

1 Ответ

1 голос
/ 24 августа 2010

.\{0,1\} соответствует 1.

Заменить . на [^0-9].

...