首页 > 其他分享 >分割字符串

分割字符串

时间:2024-07-28 23:06:59浏览次数:15  
标签:分割 end TStringList Delphi 字符串 Match

在 Delphi 中,分割字符串可以通过多种方式实现,最常用的方法是使用 TStringList、String.Split 方法(在 Delphi 2009 及以上版本中可用),或者使用正则表达式。以下是几种常见的方法来分割字符串。

  1. 使用 TStringList
    TStringList 是一个非常方便的类,可以用来分割字符串并存储结果。

uses
Classes, SysUtils;

procedure SplitString(const Input: string; const Delimiter: Char; List: TStringList);
begin
List.Clear; // 清空列表
List.Delimiter := Delimiter; // 设置分隔符
List.StrictDelimiter := True; // 严格模式,不允许空格
List.DelimitedText := Input; // 分割字符串
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ResultList: TStringList;
I: Integer;
begin
ResultList := TStringList.Create;
try
SplitString('Hello,World,Delphi', ',', ResultList);
for I := 0 to ResultList.Count - 1 do
ShowMessage(ResultList[I]); // 显示每个分割后的字符串
finally
ResultList.Free;
end;
end;
2. 使用 String.Split 方法
如果您使用的是 Delphi 2009 或更高版本,可以使用 String.Split 方法来分割字符串。

procedure TForm1.Button2Click(Sender: TObject);
var
Parts: TArray;
Part: string;
begin
Parts := 'Hello,World,Delphi'.Split([',']); // 分割字符串
for Part in Parts do
ShowMessage(Part); // 显示每个分割后的字符串
end;
3. 使用正则表达式
如果需要更复杂的分割逻辑,可以使用正则表达式。需要使用 RegularExpressions 单元。

uses
System.RegularExpressions, System.SysUtils;

procedure TForm1.Button3Click(Sender: TObject);
var
Regex: TRegEx;
Match: TMatch;
Input: string;
begin
Input := 'Hello;World,Delphi:Pascal';
Regex := TRegEx.Create('[;,:\s]+'); // 使用分隔符(;、,、:、空格)

Match := Regex.Match(Input);
while Match.Success do
begin
ShowMessage(Match.Value); // 显示每个分割后的字符串
Match := Match.NextMatch;
end;
end;
总结
以上是几种在 Delphi 中分割字符串的方法。根据您的需求,可以选择最适合的方法。如果只需要简单的分隔符分割,TStringList 和 String.Split 是最常用的选择。如果需要更复杂的逻辑,正则表达式会更灵活。

标签:分割,end,TStringList,Delphi,字符串,Match
From: https://www.cnblogs.com/ljk2008/p/18329116

相关文章

  • LeetCode 408场周赛,Q3. 统计 1 显著的字符串的数量;问题分析
    https://leetcode.cn/contest/weekly-contest-408/problems/count-the-number-of-substrings-with-dominant-ones/description/、、这题难度是middle,但是确实有点强思维的味道,赛时思考了许久,没想到好方向,最后想了个线段树的解法。。当然最后超时了861/884,二十多个用例过不去;......
  • Python科研武器库 - 字符串操作 - 路径字符串分割 os.path.split()、os.path.splitext
    使用场景:科研中批量处理数据时的,文件路径分割以及文件格式判断。对于文件格式判断,是因为实际文件的格式多种多样,就拿图像为例,就有.png.jpg.bmp等等。更不用说,有时候还有一些干扰文件需要屏蔽(比如Mac系统的.DS_Store文件)。这就需要我们判断文件格式,再对特定格式的文件进行操......
  • 【代码随想录训练营第42期 Day10打卡 LeetCode 232.用栈实现队列 225. 用队列实现栈 2
    目录一、做题心得二、题目与题解题目一:232.用栈实现队列题目链接题解题目二:225.用队列实现栈题目链接题解题目三:20.有效的括号题目链接题解题目四:1047.删除字符串中的所有相邻重复项 题目链接题解三、小结一、做题心得今天是代码随想录训练营打卡的第1......
  • Python科研武器库 - 字符串操作 - 字符串分隔 split()、rsplit()
    使用场景:在科研中,数据样本的命名方式往往包含着对应的信息,例如,一张人脸图片34_anger_1.png,文件名中包含着该图片中主体在数据集中的ID、人脸表情种类、以及该图片是同类型第几张图片。使用python批量处理数据时,从文件名中获取对应信息也是很关键的一步,然后才能基于这些信息进......
  • Java基础10:拓展运算符、字符串连接符、三元运算符
    扩展运算符publicstaticvoidmain(String[]args){ inta=10; intb=20; a+=b;//a=a+b System.out.println(a+":"+b);}字符串连接符"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。//字符串......
  • 8:Python字符串的魔法属性
    test="alex"v=test.capitalize()#首字母的大写print(v)test1="alEx"v1=test1.casefold()#所有字母变小写print(v1)test2="alEx"v2=test2.center(20,"*")#设置宽度,并将内容居中,20代指总长度,*代指空白位置填充且只能填一个字符print(v2)test3="alexralexr"v3=te......
  • 字符函数和字符串函数(1)
    在编程过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,c语言标准库提供了一系列库函数。一、字符分类函数c语言中有一系列函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。  这些函数的使用都需要包含一个头文件是ctype.h 这些函数使用方法非常......
  • Django Haystack 多值字符串分面——未知字段tags_exact
    我网站上的内容用可变长度的字符串标记,我想对这些标记进行分面搜索。例如,一个故事可能有标签“内战”、“格兰特将军”和“葛底斯堡之战”。我希望能够对精确的非标记化字符串进行分面搜索。在我的search_index.py中,我定义了:tags=MultiValueField(faceted=True,in......
  • js切割字符串指定个数?
    如果你想剪切字符串的开头几个字符,可以使用JavaScript的substring()方法或者slice()方法。使用substring()方法:letstr="Hello,World!";letcutLength=5;//要剪切的字符数 letnewStr=str.substring(cutLength);console.log(newStr);//输出:",Worl......
  • 从混合字符串中查找 pandas 中的字符数
    我正在寻找pandasdf中混合列中字母的数量。如果字母数量超过2,请保留最接近数字的两个字母。我尝试使用下面的方法获取计数df['count']=len(re.findall('[a-zA-Z]',a['MyCOlumn']))但出现以下错误:TypeError:Expectedstringorbytes-像对象输......