Избегайте длинных повторений в регулярных выражениях. Как это упростить? - PullRequest
0 голосов
/ 12 марта 2019

Я пишу регулярное выражение в javascript.
Цель состоит в том, чтобы убрать заголовки из "частей" информации.
Пример:

  • Месть волка - Часть 2. => Месть волка
  • По дороге, часть III.=> Вдоль дороги
  • Где-то за радугой (часть первая) => Где-то за радугой
  • и т. Д. [Part 4 #] => etc

Ноособый случай, когда я хочу сохранить пунктуацию перед «частью», это когда есть ведущий субтитр:

  • В облаке - [часть 2] судьба => В облаке - судьба

Пока что я написал регулярное выражение, которое «работает», но я думаю, что его можно упростить.

Вот рабочий пример: https://regex101.com/r/0dvJL4/5 Есть ли способупростить повторение шаблона (используется внутри lookahead && в регулярном выражении после?

повторного шаблона:

 {0,3}[\(\[]? ?[^\w]part[^\w][ -:]?(?:III|II|IV|IX|I|VIII|VII|VI|V|XIII|XII|XI|X|one|two|three|four|five|six|seven|eight|nine|ten|\d{1,3}){1} ?#?\.?[\)\]]?[\(\[]?(?:final)?[\)\]]?

thx для любого совета

1 Ответ

1 голос
/ 12 марта 2019

Я не понимаю, зачем вам нужен повторяющийся паттерн. Кроме того, возможно, вам не следует включать каждый возможный регистр номера детали (должен * \w+):

/\s*[,-]?\s*[[(]?part[\s-:]\w+#?[\])]?/ig

Попробуйте

Используйте его с str.replace(regex, ""), чтобы удалить ненужные детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...