Я пытаюсь отформатировать пользовательские столбцы для удобного способа перечисления моих книг. Для этого у меня есть пользовательский столбец с регулярным выражением для формата 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: Я знаю, что могу сделать много операций по регулярному выражению, один по особенностям, а не единственное массовое регулярное выражение, это не проблема:)