TPerlRegEx ваш друг!
Если вы не использовали их раньше, не паникуйте.
Я только что нашел этот 'SkillSprint' за их использование - я не наблюдал за этим, но, вероятно, это вам полезно.
В Интернете также есть множество инструментов, которые помогут вам протестировать синтаксис RegEx, чтобы увидеть, работает ли он. Эта ссылка идет на тот, который я использовал сам (есть много доступных лотов).
function IsJustAscii(Input: String): Boolean
var
pRegEx: TPerlRegEx;
begin
pRegEx:=TPerlRegEx.Create;
pegEx.RegEx:='^[\x20-\x7f]*$'; // Any number (including 0) of ascii characters
pRegEx.Subject:=Input;
pRegEx.Options:=[preSingleLine, preMultiLine];
Result:=pRegEx.Match;
FreeAndNil(pRegEx);
end
function ContainsCyrillic(Input: String): Boolean
var
pRegEx: TPerlRegEx;
begin
pRegEx:=TPerlRegEx.Create;
pegEx.RegEx:='[\x{0400}-\x{04ff}]+'; // one or more cyrillic characters
pRegEx.Subject:=Input;
pRegEx.Options:=[preSingleLine, preMultiLine];
Result:=pRegEx.Match;
FreeAndNil(pRegEx);
end
Первая функция проверяет, что вся строка содержит только символы Ascii (вы можете разрешить переводы строки), табуляция, возврат каретки и т. д.)
Вторая функция определяет, есть ли в строке какие-либо символы кириллицы.