欢迎光临
我们一直在努力

易语言正则表达式语法

易语言正则表达式,摘自精易编程助手 正则调试

正则表达式语法:

\

将下一个字符标记为特殊字符或字面值。
例如"n"与字符"n"匹配。"\n"与换行符匹配。序列"\"与"\"匹配对面,"("与"("匹配。

^

匹配输入的开始位置。

$

匹配输入的结尾。

*

匹配前一个字符零次或几次。
例如,"zo*"可以匹配"z"、"zoo"。

+

匹配前一个字符一次或多次。
例如,"zo+"可以匹配"zoo",但不匹配"z"。

?

匹配前一个字符零次或一次。
例如,"a?ve?"可以匹配"never"中的"ve"。

.

匹配换行符以外的任何字符。

(pattern)

与模式匹配并记住匹配。匹配的子字符串可以从作为结果的Matches集合中使用Item[0]…[n]取得。如果要匹配括号字符(和),可使用"("或")"。

x|y

匹配x或y。
例如"z|food"可匹配"z"或"food"。"(z|f)ood"匹配"zood"或"food"。

{n}

n为非负的整数。匹配恰好n次。
例如,"o{2}"不能与"Bob中的"o"匹配,但是可以与"foooood"中的前两个o匹配。

{n,}

n为非负的整数。匹配至少n次。
例如,"o{2,}"不匹配"Bob"中的"o",但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。

{n,m}

m和n为非负的整数。匹配至少n次,至多m次。
例如,"o{1,3}"匹配"fooooood"中前三个o。"o{0,1}"等价于"o?"。

[xyz]

一个字符集。与括号中字符的其中之一匹配。
例如,"[abc]"匹配"plain"中的"a"。

[^xyz]

一个否定的字符集。匹配不在此括号中的任何字符。
例如,"[^abc]"可以匹配"plain"中的"p".

[0-9]

匹配0-9之间的任意1个数字。

[a-z]

表示某个范围内的字符。与指定区间内的任何字符匹配。
例如,"[a-z]"匹配"a"与"z"之间的任何1个小写字母。

[A-Z]

表示某个范围内的字符。与指定区间内的任何字符匹配。
例如,"[A-Z]"匹配"A"与"Z"之间的任何1个大写字母。

[^m-z]

否定的字符区间。与不在指定区间内的字符匹配。
例如,"[m-z]"与不在"m"到"z"之间的任何字符匹配。

\b

与单词的边界匹配,即单词与空格之间的位置。
例如,"er\b"与"never"中的"er"匹配,但是不匹配"verb"中的"er"。

\B

与非单词边界匹配。"ea*r\B"与"neverearly"中的"ear"匹配。

\d

与一个数字字符匹配。等价于[0-9]。

\D

与非数字的字符匹配。等价于[^0-9]。

\f

与分页符匹配。

\n

与换行符字符匹配。

\r

与回车字符匹配。

\s

与任何白字符匹配,包括空格、制表符、分页符等。等价于"[\f\n\r\t\v]"。

\S

与任何非空白的字符匹配。等价于"[^\f\n\r\t\v]"。

\t

与制表符匹配。

\v

与垂直制表符匹配。

\w

与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]"。

\W

与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。

\num

匹配num个,其中num为一个正整数。引用回到记住的匹配。
例如,"(.)\1"匹配两个连续的相同的字符。

\n

匹配n,其中n是一个八进制换码值。八进制换码值必须是1,2或3个数字长。
例如,"\11"和"\011"都与一个制表符匹配。"\0011"等价于"\001"与"1"。八进制换码值不得超过256。否则,只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。

\xn

匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。
例如,"\x41"匹配"A"。"\x041"等价于"\x04"和"1"。允许在正则表达式中使用ASCII码。

网页相关:

匹配HTML标记

<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配链接地址

href *= *['"]*(\S+)["']评注:匹配网页上的链接地址

匹配链接地址和标题

\<a href *= *['"]*(\S+)["'].*\>(.[^\<]*)?\</a>
评注:匹配网页上的链接地址及标题

匹配网址URL

[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配网站域名

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
评注:一个完整的域名,由根域、顶级域、二级、三级……域名构成,每级域名之间用点分开,每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,长度不超过63。
很显然,单独的名字可以由正则表达式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}来匹配,而完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点(在规范中,最后有一个点的才是完整域名,但一般认为包括两个以上名字的域名也是完整域名,哪怕它后面没有点)。

匹配IP地址

\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用

匹配Email地址

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配图片引用地址

\<img.*src *= *['"]*(\S+)["'].*\>
评注:可用在网页图片提取等地方

匹配帐号是否合法

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配密码是否合法

^[a-zA-Z]\w{5,17}$
评注:密码正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。

匹配相关数字:

匹配国内电话号码

\d{3,4}[\s,-]?\d{7,8}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配手机号码

1[3,4,5,8]\d[\s,-]?\d{4}[\s,-]?\d{4}+
评注:校验手机号码:必须以数字开头,除数字外,可含有“-” 或空格

匹配腾讯QQ号

[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码

[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字

匹配身份证号码

[1-9][0-9,X]{14,17}
评注:中国的身份证为15位或18位

匹配特定的数字

^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$    //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配字符串:

匹配中文字符

[\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符

包括汉字在内:[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行

\n\s*\r
评注:可以用来删除空白行

匹配首尾空白字符

^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配特定字符串

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

匹配多行文本

开始关键字([\s\S]*?)结束关键字
—-应用实例:—————–

 <table>
  <tr>
   <td>单元格1</td><td>单元格2</td>
  </tr>
  <tr>
   <td>单元格3</td><td>单元格4</td>
  </tr>
 </table>

正则表达式.创建 (“<tr>([\s\S]*?)</tr>”)

支付宝扫码打赏 微信扫码打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

未经允许不得转载:军哥驿站 » 易语言正则表达式语法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

军哥驿站 建站更专业 更方便

网站开发联系我们