Калибр: Regex для названия формата серии - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь отформатировать пользовательские столбцы для удобного способа перечисления моих книг. Для этого у меня есть пользовательский столбец с регулярным выражением для формата Serie (я не знаю, является ли это термином engli sh, извините).

На данный момент: значение столбца равно : {#series:re([^\w]*(\w?)[^\s]+(\s|$),\1)} (я нашел его в калибре do c).

В большинстве случаев это работает хорошо, но в приведенных ниже случаях есть некоторые настройки для лучшего опыта.

Agence 13
    // result: "A1"; expected: "A13"
L'Age des Ténèbres
    // result: "LDT"; expected: "LADT" or "ADT"
L'assassin royal - Le Fou et l'Assassin
    // result: "LRLFEL"; expected: "LAR-LFELA" or "AR-LFEA"
La Compagnie des Glaces - Nouvelle époque
    // result: "LCDGNE"; expected: "LCDG-NE"
Cthulhu : Le Mythe
    // result: "CLM"; expected: "C:LM"
Le Cycle d'Ea
    // result: "LCD"; expected: "LCDE" or "LCE"
Cycle Haut-Royaume - Les Sept Cités
    // result: "CHLSC"; expected: "CRH-LSC"
Doctor Who - 11
    // result: "DW1"; expected: "DW-1"
Lucie Hennebelle / Franck Sharko
    // result: "LHFS"; expected: "LH/FS"
Star Wars Cycle 07 - Le Destin des Jedi
    // result: "SWC0LDDJ"; expected: "SWC07-LDDJ"
W40K : Black Crusade
    // result: "BC"; expected: "W40K:BC"

Мы можем видеть:

  • некоторые слова удалены, потому что ниже указаны такие статьи, как l'.
  • Знаки препинания или специальные символы, такие как -, ':' или \ удаляются.
  • числа форматируются как слово, поэтому сначала сохраняются первые ди git или, если число находится внутри слова (например, 40k), они удаляются.

Итак, я хочу иметь 3 функции:

  • не рассматривать предложение как l'word как одно слово, а два
  • не удаляйте специальные символы, такие как знаки препинания ( может быть выполнено, когда вокруг нет места (Haut-Royaume должен быть HR, а не H или H-R)).
  • не удаляйте цифры

Но я действительно не знаю, как это сделать ...

Можете ли вы мне помочь, пожалуйста?

PS: Я знаю, что могу сделать много операций по регулярному выражению, один по особенностям, а не единственное массовое регулярное выражение, это не проблема:)

...