用正则表达式获取指定的字符串

转载自:http://www.cnblogs.com/Stwo/archive/2011/08/29/2158260.html

有一网友问了一个有关正则的问题,即取出以单词begin开头和单词end结尾之间的字符串,很感兴趣便动手试下,可试了很多次效果不是太理想,今天简单的实现了,代码如下:

unit  Unit1;
 
interface
 
uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, RegularExpressions, StdCtrls;
 
type
   TForm1 = class (TForm)
     Button1: TButton;
     Edit1: TEdit;
     Memo1: TMemo;
     Label1: TLabel;
     Label2: TLabel;
     procedure  Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end ;
 
var
   Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure  TForm1 . Button1Click(Sender: TObject);
var
   Regex: TRegex;
begin
   Regex := TRegex . Create(Edit1 . Text, [roIgnoreCase]);
   try
     if  Regex . Match(Memo1 . Text).Success then
       begin
         ShowMessage(Regex . Match(Memo1 . Text).Value);
       end ;
   finally
 
   end ;
end ;
 
end .

  (注:开发环境XE)

Edit1 . Text := '(?<=Begin)([.\S\s]*)(?=End)' ; //正则


Memo1 . Text:= 'dklewjsabegindiekdjekdenickdkekkdiuiuijujenddkeidkkd'

内容中可以有换行符,这里只是简单的实现,可能还有些情况要处理,比如内容中不只一个begin~end,这就要另作处理了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值