Как сделать шаблон в Lua, который соответствует только тогда, когда нет числа (обычного или римского)? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу создать шаблон, который соответствует только тогда, когда строка не содержит арабских c или римских цифр (обратите внимание, что римские цифры могут быть только от go до X (10))

Примеры:

"Rock"                 <-- matches
"Rock IV"              <-- doesn't match
"Rock 4"               <-- doesn't match
"Rock Paper"           <-- matches
"Rock Paper Scissors"  <-- matches
"Rock Paper VIII"      <-- doesn't match
"Rock Paper 8"         <-- doesn't match

Мой текущий код позволяет использовать только 1 слово и цифру. Моя цель - сделать так, чтобы оно не совпадало только при наличии числа. Код:

"^([^%s]+)$"

Как видно из названия, я использую Lua. Я также могу отметить, что код будет использоваться в одной из вики-страниц фэндома, поэтому синтаксис должен соответствовать синтаксису Scribunto .

1 Ответ

0 голосов
/ 29 мая 2020

Я не могу придумать шаблон, который бы соответствовал тому, что вам нужно в одном go с любым возможным словом.

".*%s?[^IVXLCDM0-9]+$"

Это соответствует любой строке, которая не заканчивается пробелом и цифрами.

Это не сработает для слов с римскими цифрами, например "RockM".

Часто легче сопоставить что-то, что не соответствует чему-то.

Если вы просто хотите проверить может быть проще найти строку для [0-9IVXLCDM]

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