Как сделать шаблон в Lua, который соответствует только тогда, когда нет числа (обычного или римского)?
Я хочу создать шаблон, который соответствует только тогда, когда строка не содержит арабских или римских цифр (обратите внимание, что римские цифры могут идти только до 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 ответ
Я не могу придумать шаблон, который соответствовал бы тому, что вам нужно, за один раз с любым возможным словом.
".*%s?[^IVXLCDM0-9]+$"
Это соответствует любой строке, которая не заканчивается пробелом и цифрами.
Это не сработает для слов с римскими цифрами, таких как "RockM".
Часто легче сопоставить что-то, чем что-то не совпадать.
Если вы просто хотите проверить, возможно, будет проще найти строку для [0-9IVXLCDM]