
正则表达式的语法(1)
(正则表达式语法1)
重要提示
下面是在免费软件库TRegExpr中实现的正则表达式的描述. 请注意,该库广泛用于许多免费和商业软件产品. TRegExpr库的作者无法回答该产品用户的直接问题. 请先将您的问题发送到产品支持.
重要事项
以下是对由自由软件TregExpr库实现的正则表达式的描述. 请注意,该库广泛用于许多免费和商业软件产品中. 但是TregExpr的作者不会直接回答使用这些产品的用户的问题. 如果(这些用户)需要帮助,请先将您的问题发送到这些产品的售后服务部门.
简介
正则表达式是一种用于指定要搜索的文本模式的广泛使用的方法. 特殊的元字符允许您指定,例如,您要查找的特定字符串出现在行的开头或结尾,或者包含特定字符的n个重复出现.
简介
正则表达式是基于指定的文本模式进行搜索的广泛使用的方法. 它允许您指定特殊的原始字符. 例如,您可以在一行的开头或结尾找到特殊的字符串,或者包含n个重复字符的字符串.
对于新手来说,正则表达式看起来很丑陋,但实际上它们非常简单(好,通常很简单;)),方便又强大的工具.
对于初学者来说,正则表达式似乎无法解释. 实际上,它确实是一个非常简单,易学且功能强大的工具.
我建议您使用RegExp Studio处理正则表达式,这将帮助您了解主要概念. 此外,R.e的存储库中包含许多带有注释的预定义示例. 视觉调试器.
我建议您使用RegExp Studio学习正则表达式-它可以帮助您理解主要概念. 此外,R.e. 可视调试器中有许多完整的示例,并带有注释.
让我们开始学习之旅吧!
开始吧!
简单匹配
任何单个字符都会匹配自身,除非它是具有以下特殊含义的元字符.
简单匹配
任何字符都可以匹配自身,除非它是以下具有特殊含义的元字符.
一系列字符与目标字符串中的那一系列字符匹配,因此模式“ bluh”将与目标字符串中的“ bluh”匹配. 很简单,是吗?
一系列字符与目标字符串中的相同字符匹配,因此“ bluh”模式与目标字符串中的“ bluh”匹配. 很简单,不是吗?

您可以使通常用作元字符或转义序列的字符通过在其前面加上反斜杠“ \”来“转义”来从字面上进行解释,例如: 元字符“ ^”匹配字符串的开头,但“ \ ^” “匹配字符” ^“,” \\“匹配” \“等.
您可以将字符视为元字符的函数,或者通过在字符前面添加反斜杠“ \”来进行转义序列处理,即根据其字面含义进行解释,例如: 元字符“ ^”字符串的开头,但“ \ ^”与字符“ ^”匹配,相同的“ \\”表示“ \”,依此类推.
示例:
foobar匹配字符串'foobar'
\ ^ FooBarPtr匹配'^ FooBarPtr'
C ++ Builder用户注意事项
请阅读有关常见问题解答的常见问题解答在Borland C ++ Builder中工作不正确?
C ++ Builder用户注意事项
请阅读常见问题解答中有关为什么在Borland C ++ Builder中许多r.e无法正常工作的问题?
转义序列
转义序列
可以使用转义序列语法指定字符,就像在C和Perl中使用的语法一样: “ \ n”匹配换行符,“ \ t”制表符,等等. 更普遍的是\ xnn,其中nn是字符串十六进制数字,与ASCII值为nn的字符匹配. 如果需要宽(Unicode)字符代码,则可以使用'\ x {nnnn}',其中'nnnn'-一个或多个十六进制数字.
\ xnn char(十六进制代码nn)
\ x {nnnn}字符,其十六进制代码为nnnn(一个字节用于纯文本,两个字节用于Unicode)
\ t标签(HT / TAB),与\ x09
相同
\ n换行符(NL),与\ x0a
相同
\ r car.return(CR),与\ x0d
相同
\ f换页(FF),与\ x0c
相同

\警报(铃)(BEL),与\ x07
相同
\ e转义(ESC),与\ x1b
\ xnn十六进制nn个字符
\ x {nnnn}十六进制nnnn格式的字符(纯文本为1个字节,Unicode为2个字节)
\ t标签(HT / TAB),与\ x09
相同
\ nline feed(NL),与\ x0a
相同
\ r回车符(CR),与\ x0d
相同
\ f换页(FF),与\ x0c
相同
\警报(铃)(BEL),与\ x07
相同
\ e转义字符(ESC),与\ x1b
相同
示例:
foo \ x20bar匹配“ foo bar”(注意中间的空格)
\ tfoobar匹配选项卡预定义的'foobar'
foo \ x20bar与“ foo bar”匹配(注意中间的空格)
\ tfoobar与“ foobar”匹配,并且前面有一个标签

字符类
字符类
您可以通过在[]中包含一个字符列表来指定字符类,该字符列表将匹配列表中的任何一个字符.
您可以使用[]来指定字符类,以包括一系列字符,这些字符将与[]中的任何字符匹配.
如果“ [”之后的第一个字符是“ ^”,则该类匹配列表中未包含的任何字符.
如果[[]之后的第一个字符是“ ^”正则表达式语法/,则此类将匹配不在此[]中的任何列表.
示例:
foob [aeiou] r查找字符串'foobar','foober'等,但找不到'foobbr','foobcr'等
foob [^ aeiou] rfind字符串'foobbr','foobcr'等,但不是'foobar','foober'等.
foob [aeiou] r匹配'foobar','foober'等,但不匹配'foobbr','foobcr'等
foob [^ aeiou] r匹配'foobbr','foobcr'等,但不匹配'foobar','foober'等.
在列表中,“-”字符用于指定范围,因此a-z表示“ a”和“ z”之间的所有字符(包括两端).
在列表中正则表达式语法/,“-”表示范围,因此a-z表示从a到z的所有字符.
如果您希望“-”本身成为类的成员,请将其放在列表的开头或结尾,或使用反斜杠对其进行转义. 如果您想使用']',则可以将其放在列表的开头,也可以使用反斜杠对其进行转义.
如果要匹配“-”,则需要将其放在列表的开头或结尾,或者使用“ \”转义.
如果要匹配“]”,则需要将其放在列表的开头,或者用“ \”转义.
示例:
[-az]匹配'a','z'和'-'
[az-]匹配'a','z'和'-'
[a \ -z]匹配'a','z'和'-'
[a-z]匹配从“ a”到“ z”的所有二十六个小字符
[\ n- \ x0D]匹配#10,#11,#12,#13中的任何一个.

[\ d-t]匹配任何数字“-”或“ t”.
[]-a]匹配']'..'a'中的任何字符.
元字符
元字符
元字符是特殊字符,是正则表达式的本质. 元字符有不同类型,如下所述.
元字符是要表达的表达式的本质. 这是一种特殊的字符. 下面显示了不同类型的元字符:
元字符行分隔符
元字符–行分隔符
^行首. 指示一行的开头
$行尾. 指示一行的结尾
\文本开头. 指示文本的开头
\ Z文本结尾. 指示文本的结尾
. 行中的任何字符. 匹配任何字符
示例:
^ foobar仅在字符串“ foobar”位于行首时才匹配
foobar $仅当字符串'foobar位于行尾时匹配
^ foobar $仅在唯一的字符串中匹配字符串'foobar'
foob.r匹配'foobar','foobbr','foob1r'等字符串
默认情况下,仅保证“ ^”元字符在输入字符串/文本的开头匹配,“ $”元字符仅在结尾匹配. 嵌入式行分隔符将不与“ ^”或“ $”匹配.
嵌入行分隔符时,“ ^”或“ $”不表示原始含义.
但是,您可能希望将字符串视为多行缓冲区,以使“ ^”在字符串中的任何行分隔符之后匹配,而“ $”在任何行分隔符之前匹配. 为此,请打开修饰符/ m.
但是您可以处理多行文本,但是“ ^”或“ $”仅与行分隔符之后的开头或结尾匹配. 此时,您可以启用修饰符/ m.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-194775-1.html
美颜盛世韬宝唱的赞赞