`
huangyongxing310
  • 浏览: 501220 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

正则表达式

 
阅读更多
正则表达式


元字符
\b
代表着单词的开头或结尾,也就是单词的分界处。
"This is Regex"
"\bis\b"  //只想匹配“is”这个单词,This中的“is”不匹配


.
匹配除了换行符以外的任何字符

*
重复零次或更多
.*//任意数量的不包含换行的字符

\d
匹配一个数字
\d\d //匹配2个数字
\d{8} //匹配8个数字


\w
匹配字母,数字,下划线或汉字

\s
匹配空格

[abc]
匹配包含括号内元素的字符
[a-z]//匹配a至z的所以字母


^
会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。

$
会匹配行或字符串的结尾
^\d{5,12}$ //QQ号必须为5位到12位数字



元字符反义
"\W" 		匹配任意不是字母,数字,下划线 的字符
"\S" 		匹配任意不是空白符的字符
"\D"		匹配任意非数字的字符
"\B"		匹配不是单词开头或结束的位置
"[^abc]"	匹配除了abc以外的任意字符



字符转义
要查找元字符相关的要加"\"
\. //匹配.
\* //匹配*



量词
"*"(贪婪)	重复零次或更多
"+"(懒惰)	重复一次或更多次
"?"(占有)	重复零次或一次
"{n}"		重复n次
"{n,m}"  	重复n到m次
"{n,}"  	重复n次或更多次



分枝条件
|
相当于或的意思


分组
()
就是这个条件使用多少次
(\d{1,3}\.){3}\d{1,3} //匹配IP地址



捕获分组
其实就是一个括号内的内容


后向引用
如果后而有相同的内容则可以直接引用前面定义的捕获组,以简化表达式
(\d)\d\1 //这里的"\1"就是对"(\d)"的后向引用

"zery zery" 正则 \b(\w+)\b\s\1\b 所以这里的"\1"所捕获到的字符也是 与(\w+)一样的"zery",为了让组名更有意义,组名是可以自定义名字的
"\b(?<name>\w+)\b\s\k<name>\b" 用"?<name>"就可以自定义组名了而要后向引用组时要记得写成 "\k<name>";自定义组名后,捕获组中匹配到的值就会保存在定义的组名里


"(exp)"    匹配exp,并捕获文本到自动命名的组里
"(?<name>exp)"   匹配exp,并捕获文本到名称为name的组里
"(?:exp)"  匹配exp,不捕获匹配的文本,也不给此分组分配组号



零宽断言
"(?=exp)"  匹配exp前面的位置

  如 "How are you doing" 正则"(?<txt>.+(?=ing))" 这里取ing前所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为"How are you do";

"(?<=exp)"  匹配exp后面的位置

  如 "How are you doing" 正则"(?<txt>(?<=How).+)" 这里取"How"之后所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为" are you doing";

"(?!exp)"  匹配后面跟的不是exp的位置

  如 "123abc" 正则 "\d{3}(?!\d)"匹配3位数字后非数字的结果

"(?<!exp)"  匹配前面不是exp的位置

  如 "abc123 " 正则 "(?<![0-9])123" 匹配"123"前面是非数字的结果也可写成"(?!<\d)123"


分享到:
评论

相关推荐

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    在Qt框架中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员以结构化的方式匹配、查找、替换或验证字符串。本项目针对Qt的lineEdit组件,通过正则表达式实现了输入限制功能,使得lineEdit...

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    易语言正则表达式文本替换

    例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...

    pb 使用正则表达式源码pbregexp

    标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...

    易语言正则表达式匹配中文

    在易语言中,正则表达式是进行文本处理、数据提取和搜索的关键工具,尤其在处理中文字符时显得尤为重要。本文将深入探讨易语言中的正则表达式匹配中文的原理、方法以及应用。 正则表达式(Regular Expression)是一...

Global site tag (gtag.js) - Google Analytics