Kenneth
是字符串。假设它包含'justabcsome123texthaha'
。
- 我已经知道了:*
要查找文本,请执行以下操作:
if(pos('bcsome12',Kenneth) > 0) then
检查长度:
if(Length('Kenneth') > 10) then
问题1:
我想找到'texthaha'
,但前提是它位于字符串的末尾。
if(pos('texthaha',Kenneth) > 0) then
它可以在任何地方找到,即使它在中间。有简单的方法吗?
问题二:
有没有一种简单的搜索方法,但是使用*
(中间的任何字符)?
例如,如果我想搜索bcsome1*3text
,我不在乎*
是什么字符。我想应该叫“小”,对吧?
if(pos('bcsome1'*'3text',Kenneth) > 0) then
我知道上面的方法行不通。但是有没有类似的方法呢?**编辑:可能重要:使用的 Delphi 版本很旧,不确定版本,但它是2006年的。
2条答案
按热度按时间zmeyuzjn1#
在
StrUtils
单元中有函数EndsStr()
和EndsText()
(后者不区分大小写但是,你可以很容易地用已知的函数提供所需的功能(Pos也有一个重载版本,在新的 Delphi 中有第三个参数):
或@Sertac Akyuz提出的变体:
第二个问题可以用类似
MatchesMask()
的函数来解决。mwg9r5ms2#
要获取最后一次出现的值,请尝试
LastDelimiter
(参见help)。有关通配符,请参阅post。