关于 TRegEx.Split()
关于 TRegEx.Split()
涂孟超 发表于3年前
关于 TRegEx.Split()
  • 发表于 3年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   


表达式中的括号将严重影响分割结果.

uses RegularExpressions;

const
  FSourceText = '1: AAA 2: BBB 3: CCC'; // 分隔符将有三部分构成: 一个数字, 一个冒号, 一个空格
var
  Arr: TArray
 
  ;
  str: string;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Arr := TRegEx.Split(FSourceText, '\d: ');

  Memo1.Clear;
  for str in Arr do Memo1.Lines.Add(str);
  {结果:

  AAA
  BBB
  CCC
  }
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Arr := TRegEx.Split(FSourceText, '(\d): '); //括号中的部分被当做分割后的元素

  Memo1.Clear;
  for str in Arr do Memo1.Lines.Add(str);
  {

  1
  AAA
  2
  BBB
  3
  CCC
  }
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Arr := TRegEx.Split(FSourceText, '(\d:) '); // 证实上面

  Memo1.Clear;
  for str in Arr do Memo1.Lines.Add(str);
  {

  1:
  AAA
  2:
  BBB
  3:
  CCC
  }
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Arr := TRegEx.Split(FSourceText, '(\d)(:) '); // 如果有两个括号, 取后面括号的内容做元素

  Memo1.Clear;
  for str in Arr do Memo1.Lines.Add(str);
  {

  :
  AAA
  :
  BBB
  :
  CCC
  }
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Arr := TRegEx.Split(FSourceText, '(\d)(:)( )'); // 证实上面

  Memo1.Clear;
  for str in Arr do Memo1.Lines.Add(str);
  {


  AAA

  BBB

  CCC
  }
end;

共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: