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 字符(您可能希望允许换行符、制表符、回车符等)
第二个函数查找字符串中是否有任何西里尔字符。