在Delphi程序中使用正则表达式

简介: TRegexp的正则表达式的格式说明文档 .  代表所有字符,换行符号(newline)除外*  0或多次 *号会尽可能多匹配+  1或多次 +号会尽可能的多匹配?  0或1个,即使前面有+号或*号,也只能为2个(即1+1=2个)^  否定符,如 [^2]+ 匹配不能含有2的任意字符串^ 匹配开头  ^D,匹配以D开头的字符串$ 匹配结尾  $S,匹配以S结尾的字符串| 相当于or Abou

TRegexp的正则表达式的格式说明文档

.  代表所有字符,换行符号(newline)除外
*  0或多次 *号会尽可能多匹配
+  1或多次 +号会尽可能的多匹配
?  0或1个,即使前面有+号或*号,也只能为2个(即1+1=2个)
^  否定符,如 [^2]+ 匹配不能含有2的任意字符串
^ 匹配开头  ^D,匹配以D开头的字符串
$ 匹配结尾  $S,匹配以S结尾的字符串
| 相当于or About cats and dogs cat|dog|mouse|fish 匹配cat(第一个,如果第一不存在,匹配第二个
[] 取其中一个(1次)
() 匹配操作模块 取值用/1  /2等表示  Set(Value)? 匹配 Set或者SetValue. (?:Value)前面用?:则不提取匹配的值,如果不需要取值就这样用,效率会高
{min,max} 重复的次数 {min,}不少于min个到无穷个,{num}精确到Num个
/d 匹配所有阿拉伯数字
/b 匹配仅仅是文字的字符串,2个字节宽的文字,如中文,日文等 
/B 和/b刚好想反,只匹配1字节宽的如字母,数字,不匹配符号
/w 匹配word character,也会匹配阿拉伯数字(匹配1次)sd35fg3 /b3/b 匹配的是d35
/p{L} 匹配Unicode的字符
范围查询
q(?=u) 匹配question,不匹配Iraq,http://www.regular-expressions.info/quickstart.html
q(?!u) 不匹配question,匹配Iraq,http://www.regular-expressions.info/quickstart.html
(?<=a)b 匹配abc
(?<!a)b 不匹配abc

 

======================================

 

{
使用微软RegExp
1. 下载并安装最新版的"Microsoft(r) Windows(r) Script"
2. RegExp包含在vbscript.dll中所以我们必须先注册regsvr32 vbscript.dll
注(安装了Ie5后默认已经包含该控件)

3.在Delphi中引入"Microsoft VBScript Regular Expressions"
主菜单->Project->Import type library->在列表中选择"Microsoft VBScript Regular Expressions"

生成TRegExp控件

4.使用以下代码调用TRegExp控件
}
procedure TForm1.Button1Click(Sender: TObject);
var
matchCollection: IMatchCollection;
Matchs: Match;
submatch: ISubMatches;
i, j: integer;
begin
  RegExp1.Global := true;
  RegExp1.Pattern := '/w+/./w+(?!.)';
  RegExp1.IgnoreCase := true;
  matchCollection := RegExp1.Execute(edit1.Text) as IMatchCollection;

  for i := 0 to matchCollection.Count - 1 do
  begin
    Matchs := matchCollection.Item[i] as Match;
    submatch := Matchs.SubMatches as ISubMatches;
    memo1.Lines.Add(Matchs.Value);
    for j:=0 to submatch.Count -1 do
      memo1.Lines.Add(submatch.Item[j])
  end;
end;

相关文章
|
9月前
|
机器学习/深度学习 Unix Java
程序技术好文:正则表达式详解
程序技术好文:正则表达式详解
85 0
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r&#39;string&#39;`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
|
9月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
104 2
|
9月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
9月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
9月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
9月前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
99 2
|
10月前
|
数据安全/隐私保护 Python
Python进阶---正则表达式
Python进阶---正则表达式
40 2
|
9月前
|
Python
Python正则表达式详解:掌握文本匹配的魔法
Python正则表达式详解:掌握文本匹配的魔法
|
9月前
|
Python
python re 正则表达式库的使用
python re 正则表达式库的使用
63 0