Kenneth
是一个字符串。假设它包含'justabcsome123texthaha'
。
我已经知道了:
要查找文本:
if(pos('bcsome12',Kenneth) > 0) then
要检查长度:
if(Length('Kenneth') > 10) then
问题1:
我想找到'texthaha'
,但前提是它位于字符串的末尾。
if(pos('texthaha',Kenneth) > 0) then
可悲的是,即使它在中间,也可以在任何地方找到它。有没有简单的方法?
问题2:
是否有一种简单的搜索方法,但是带有*
(介于两者之间的任何字符)?
例如,如果我想搜索bcsome1*3text
,而我却不在意*
是什么字符。我认为这被称为通配符,对吗?
if(pos('bcsome1'*'3text',Kenneth) > 0) then
我知道上述方法无效。但是有类似的方法吗? 编辑:可能很重要:**使用的Delphi版本非常旧,不确定该版本,但该年份为2006年。
答案 0 :(得分:3)
EndsText()
单元中有函数EndsStr()
和StrUtils
(不区分大小写)
但是,您可以轻松地用已知的功能提供所需的功能(Pos在最新的Delphi中还带有第三个参数的重载版本):
NPos = Length(S) - Length(Sub) + 1;
if PosEx(Sub, S, NPos) = NPos then...
或@Sertac Akyuz提出的变体:
if Copy(S, NPos, Length(Sub)) = Sub ...
第二个问题可以通过MatchesMask()
之类的函数来解决
if MatchesMask(Kenneth, '*bcsome1*3text*')...
答案 1 :(得分:-2)