易语言正则表达式大全
- 格式:doc
- 大小:26.50 KB
- 文档页数:2
常⽤的正则表达式代码汇总常⽤的正则表达式代码汇总常⽤的正则表达式代码汇总:1。
^\d+$ //匹配⾮负整数(正整数 + 0)2。
^[0-9]*[1-9][0-9]*$ //匹配正整数3。
^((-\d+)|(0+))$ //匹配⾮正整数(负整数 + 0)4。
^-[0-9]*[1-9][0-9]*$ //匹配负整数5。
^-?\d+$ //匹配整数6。
^\d+(\.\d+)?$ //匹配⾮负浮点数(正浮点数 + 0)7。
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数8。
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配⾮正浮点数(负浮点数 + 0)9。
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数10。
^(-?\d+)(\.\d+)?$ //匹配浮点数11。
^[A-Za-z]+$ //匹配由26个英⽂字母组成的字符串12。
^[A-Z]+$ //匹配由26个英⽂字母的⼤写组成的字符串13。
^[a-z]+$ //匹配由26个英⽂字母的⼩写组成的字符串14。
^[A-Za-z0-9]+$ //匹配由数字和26个英⽂字母组成的字符串15。
^\w+$ //匹配由数字、26个英⽂字母或者下划线组成的字符串16。
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址17。
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url18。
匹配中⽂字符的正则表达式: [\u4e00-\u9fa5]19。
匹配双字节字符(包括汉字在内):[^\x00-\xff]20。
中文符号正则表达式一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$非零的正整数:^[1-9]\d*$ 或^([1-9][0-9]*){1,3}$ 或^\+?[1-9][0-9]*$非零的负整数:^\-[1-9][]0-9"*$ 或^-[1-9]\d*$非负整数:^\d+$ 或^[1-9]\d*|0$非正整数:^-[1-9]\d*|0$ 或^((-\d+)|(0+))$非负浮点数:^\d+(\.\d+)?$ 或^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[ 1-9][0-9]*))$负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9] *[1-9][0-9]*)))$浮点数:^(-?\d+)(\.\d+)?$ 或^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$二、校验字符的表达式汉字:^[\u4e00-\u9fa5]{0,}$英文和数字:^[A-Za-z0-9]+$ 或^[A-Za-z0-9]{4,40}$长度为3-20的所有字符:^.{3,20}$由26个英文字母组成的字符串:^[A-Za-z]+$由26个大写英文字母组成的字符串:^[A-Z]+$由26个小写英文字母组成的字符串:^[a-z]+$由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或^\w{3,20}中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+禁止输入含有~的字符[^~\x22]+其它:.*匹配除 \n 以外的任何字符。
正则表达式基础知识一个正则表达式就是由普通字符(例如字符a 到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
如:下面看几个例子:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;"notice":表示任何包含"notice"的字符串。
'*','+'和'?'这三个符号,表示一个或一序列字符重复出现的次数。
它们分别表示“没有或更多”,“一次或更多”还有“没有或一次”。
下面是几个例子:"ab*":表示一个字符串有一个a后面跟着零个或若干个b。
("a", "ab", "abbb",……);"ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;"ab?":表示一个字符串有一个a后面跟着零个或者一个b;"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。
也可以使用范围,用大括号括起,用以表示重复次数的范围。
"ab{2}":表示一个字符串有一个a跟着2个b("abb");"ab{2,}":表示一个字符串有一个a跟着至少2个b;"ab{3,5}":表示一个字符串有一个a跟着3到5个b。
正则表达式150种表达方式1、删除所有数字。
只要查找:\d就OK。
为了不留空行:替换处:\d2、删除所有英文字母。
只要查找:\a就OK。
为了不留空行:替换处:\d3、删除除换行符以外的所有。
只要查找:. 为了不留空行:替换处:\d4、既删除英文字母又删除数字。
只要查找:\w。
为了不留空行:替换处:\d5、删除数字加字母加等于(如:3a=或3zz=)只要查找:\d+\a+\=。
为了不留空行:替换处:\d6、删除换行。
只要查找:$。
替换处:\d(还原查找:\a+=\f。
替换:\0\n)。
如在换行后加一空格,查找:(\a)$。
替换:\0 \d。
7、删除空行只要查找:^$。
为了不留空行:替换处:\d8、删除首尾空格。
只要查找:^\s*|\s*$就OK9、删除行前数字及顿号。
只要查找:\d+、替换为空10、删除末尾标点符号。
只要查找:\P+$|\P+\s+$,“|”前面是没有空格的,“|”后面有空格,P后的加是为了……而用的。
11、删除末尾空格。
只要查找:\s+$。
替换为空。
12、删除第一个字如:“的我们”中的“的”只要查找:^\的。
13、删除第几个字。
查找:查找:^().(.+)。
替换:\1\2。
去掉前面的拼音:查找:^\a+替换为空。
第一个括号里可加“.”且可变。
14、删含的。
查:.*的.*替:\d。
的头查:.*=的.*替:\d。
的尾查:\a.*\c.*的$替:\d(留它不匹配)●删非的行查:^[^的]+$替:\d15、删除几码以上的码查:^(...)...替:\1。
删第几位码。
查:^(...).(.+)替:\1\2(变成\1,\2则其位则改成,了)首括号的.可变。
16、删除各类型的几字词,但必须是码前词后或纯词。
三字词:查找:^\~f{}\f{3}$替换:\d。
替换:\d “3”可以改。
17、删除11字词及其以上的词条查找(自定义格式):\a{}\=(\c|\P|\p){11,}。
替换:\d。
11可改。
各式各样的正则表达式参考大全:^\d+$//匹配非负整数(正整数+ 0)//匹配整数^\d+(\.\d+)?$//匹配非负浮点数(正浮点数+ 0)^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$//匹配正浮点数^((-\d+(\.\d+)?)|(0+(\.0+)?))$//匹配非正浮点数(负浮点数+ 0)^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$//匹配负浮点数^(-?\d+)(\.\d+)?$//匹配浮点数^[A-Za-z]+$????????? //匹配由26个英文字母组成的字符串^[A-Z]+$??? //匹配由26个英文字母的大写组成的字符串^[a-z]+$//匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$//匹配由数字和26个英文字母组成的字符串^\w+$//匹配由数字、26个英文字母或者下划线组成的字符串^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$//匹配email地址^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$//匹配url匹配中文字符的正则表达式:[\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]匹配空行的正则表达式:\n[\s| ]*\r匹配HTML标记的正则表达式:/<(.*)>.*<\/>|<(.*) \/>/匹配首尾空格的正则表达式:(^\s*)|(\s*$)匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址URL的正则表达式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$下表是元字符及其在正则表达式上下文中的行为的一个完整列表,具体到每个正则表达式符号:\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
《易语⾔“正则表达式”教程》”与字符串”匹配时,匹配的结果是:成功;匹配到的内容是”整个字符串,表达式中的”将与字符串中最后⼀个《易语⾔“正则表达式”教程》本⽂改编⾃多个⽂档,因此如有雷同,不是巧合。
“正则表达式”的应⽤范围越来越⼴,有了这个强⼤的⼯具,我们可以做很多事情,如搜索⼀句话中某个特定的数据,屏蔽掉⼀些⾮法贴⼦的发⾔,⽹页中匹配特定数据,代码编辑框中字符的⾼亮等等,这都可以⽤正则表达式来完成。
本书分为四个部分。
第⼀部分介绍了易语⾔的正则表达式⽀持库,在这⾥,⼤家可以了解第⼀个正则表达式的易语⾔程序写法,以及⼀个通⽤的⼩⼯具的制作。
第⼆部分介绍了正则表达式的基本语法,⼤家可以⽤上述的⼩⼯具进⾏试验。
第三部分介绍了⽤易语⾔写的正则表达式⼯具的使⽤⽅法。
这些⼯具是由易语⾔⽤户提供的,有的⼯具还带有易语⾔源码。
他们是:monkeycz、零点飞越、寻梦。
第四部分介绍了正则表达式的⾼级技巧。
⽬录《易语⾔“正则表达式”教程》 1⽬录 1第⼀章易语⾔正则表达式⼊门 3⼀.与DOS下的通配符类似 3⼆.初步了解正则表达式的规定 3三.⼀个速查列表 4四.正则表达式⽀持库的命令 54.1第1个正则表达式程序 54.2第2个正则表达式例程 74.3第3个例程 84.4⼀个⼩型的正则⼯具 9第⼆章揭开正则表达式的神秘⾯纱 11引⾔ 12⼀.正则表达式规则 121.1普通字符 121.2简单的转义字符 131.3能够与“多种字符”匹配的表达式 141.4⾃定义能够匹配“多种字符”的表达式 16 1.5修饰匹配次数的特殊符号 171.6其他⼀些代表抽象意义的特殊符号 20⼆.正则表达式中的⼀些⾼级规则 212.1匹配次数中的贪婪与⾮贪婪 212.2反向引⽤\1,\2 (23)2.3预搜索,不匹配;反向预搜索,不匹配 24三.其他通⽤规则 25四.其他提⽰ 27第三章正则表达式⼯具与实例 28⼀.正则表达式⽀持库 291.1“正则表达式”数据类型 291.2“搜索结果”数据类型 30⼆.正则表达式实⽤⼯具 302.1⼀个成品⼯具 302.2易语⾔写的⼯具 33三.应⽤实例 343.1实例1 343.2实例2 363.3实例3 373.4实例4 37第四章正则表达式话题 38引⾔ 38⼀.表达式的递归匹配 381.1匹配未知层次的嵌套 381.2匹配有限层次的嵌套 39⼆.⾮贪婪匹配的效率 402.1效率陷阱的产⽣ 402.2效率陷阱的避免 41附录: 42⼀.17种常⽤正则表达式 42第⼀章易语⾔正则表达式⼊门⼀.与DOS下的通配符类似其实,所谓的“正则表达式”,是⼤家⼀直在使⽤的,记得吗?在搜索⽂件时,会使⽤⼀种威⼒巨⼤的武器——DOS通配符——“?”和“”。
易语言正则表达式大全易语言中的正则表达式与其他语言的正则表达式语法基本一致,支持常见的正则表达式操作符和元字符,但易语言的正则表达式不支持一些高级特性,例如复杂的回溯、后向引用等。
以下是易语言中常用的正则表达式元字符和操作符:1. 元字符:- `.`: 匹配除换行符以外的任意字符。
- `\d`: 匹配一个数字字符。
- `\D`: 匹配一个非数字字符。
- `\w`: 匹配一个字母、数字或下划线字符。
- `\W`: 匹配一个非字母、数字或下划线字符。
- `\s`: 匹配一个空白字符,包括空格、制表符、换行符等。
- `\S`: 匹配一个非空白字符。
- `[]`: 匹配方括号中的任意一个字符。
- `[^]`: 匹配不在方括号中的任意一个字符。
- `^`: 匹配输入的开始位置。
- `$`: 匹配输入的结束位置。
- `*`: 匹配前面的表达式零次或多次。
- `+`: 匹配前面的表达式一次或多次。
- `?`: 匹配前面的表达式零次或一次。
- `{n}`: 匹配前面的表达式恰好n次。
- `{n,}`: 匹配前面的表达式至少n次。
- `{n,m}`: 匹配前面的表达式至少n次,但不超过m次。
- `|`: 匹配两个或多个表达式之一。
2. 操作符:- `(` 和 `)`: 标记一个子表达式的开始和结束。
- `*?`、`+?`、`??`、`{n,m}?`等:匹配前面的表达式的最小次数。
- `(?i)`、`(?s)`、`(?m)` 等:修改正则表达式的匹配模式。
例子:1. 匹配一个以数字开头、大小写字母结尾的字符串:```^\d\w*[a-zA-Z]$```2. 匹配一个由数字和逗号组成的字符串:```^\d+(,\d+)*$```3. 匹配一个包含邮箱地址的字符串:```\w+@\w+\.\w+```以上只是一些简单的易语言正则表达式示例,更复杂的正则表达式可以通过组合和嵌套来实现。
在实际使用时,可以参考具体的正则表达式教程和文档,如易语言官方文档或其他相关资源。
常用正则表达式大全! (例如:匹配中文、匹配html )匹配中文字符的正则表达式:[u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):FxOO-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII 字符计 1 ) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行匹配HTML标记的正则表达式:< (S*?)F>]*>.*?|v.*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式:A s*|s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式匹配Email 地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+ ([-.]w+)* 评注:表单验证时很实用匹配网址URL的正则表达式:[a-zA-z]+://[As]*评注:网上流传的版本功能很有限,上面这个基本可以满足需求匹配帐号是否合法( 字母开头,允许5-16 字节,允许字母数字下划线) :A[a-zA-Z][a-zA-ZO-9_]{4,15}$评注:表单验证时很实用匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 评注:匹配形式如O511-44O5222 或O21-87888822匹配腾讯QQ号: [1-9][0-9]{4,} 评注:腾讯QQ号从10000开始匹配中国邮政编码:[1-9]d{5} (?!d) 评注:中国邮政编码为6 位数字匹配身份证:d{15}|d{18}评注:中国的身份证为 15 位或 18 位A-?([1-9]d*d*|0.d*[1-9]d*|0?.0+|0)$ A[1-9]d*d*|0.d*[1-9]d*|0?.0+|0$0)A(-([1-9]d*d*|0.d*[1-9]d*))|0?.0+|0$数 + 0) 评注:处理大量 数据时有用,具体应用时注意修正 匹配特定字符串:A[A-Za-z]+$//匹配由26个英文字母组成的字符串 A [A-Z]+$ //匹配由26个英文字母的大写组成的字符串A [a-z]+$ //匹配由26个英文字母的小写组成的字符串A[A-Za-z0-9]+$// 匹配由数字和 26个英文字母组成的字符串 Aw+$ // 匹配由数字、 26个英文字母或者下划线组 成的字符串在使用 RegularExpressionValidator 验证控件时的验证功能及其验证表达 式介绍如下 :只能输入数字:“ A[0 -9]* $” 只能输入 n 位的数字:“ Ad{n}$ ” 只能输入至少 n 位数字:“ Ad{n,}$ ”只能输入m-n 位的数字:“ Ad{m, n}$只能输入零和非零开头的数字:“八(0|[1 -9][0- 9]*)$ ” A[1-9]d*$// 匹配正整数 A-[1-9]d*$// 匹配负整数 A-?[1-9]d*$// 匹配整数 A[1-9]d*|0$// 匹配非负整数(正整数 + 0 ) A-[1-9]d*|0$ // 匹配非正整数(负整数 + 0 )匹配 ip 地址: d+.d+.d+.d+评注:提取 ip 地址时有用匹配特定数字:A[1-9]d*.d*|0.d*[1-9]d*$ // 匹配正浮点数// 匹配负浮点数A-([1-9]d*d*|0.d*[1-9]d*)$ // 匹配浮点数// 匹配非负浮点数(正浮点数 + // 匹配非正浮点数(负浮点只能输入有两位小数的正实数:“ A[0 -9]+(.[0- 9]{2})?$ ”只能输入有1-3位小数的正实数:“八[0-9]+(.[0- 9] {1,3})?$ ”只能输入非零的正整数:“ A+?[1 -9][0- 9]*$ ”只能输入非零的负整数:“人-[1-9] [0- 9]*$ ”只能输入长度为 3 的字符:“ A.{3}$ ”只能输入由26个英文字母组成的字符串:“ A[A-Za- z]+$”只能输入由26个大写英文字母组成的字符串:“ A[A-Z]+$”只能输入由26个小写英文字母组成的字符串:“A[a -z]+$”只能输入由数字和26个英文字母组成的字符串:“ A[A-Za-z0- 9]+$” 只能输入由数字、26 个英文字母或者下划线组成的字符串:“Aw+$”验证用户密码:“A[a -zA-Z]w{5,17}$ ”正确格式为:以字母开头,长度在6-18 之间,只能包含字符、数字和下划线。
正则表达式(Regular Expression)是一种用于匹配字符串的强大工具。
它通过使用特定的符号和字符来描述和匹配一系列字符串,能够满足我们在处理文本时的各种需求。
在这篇文章中,我们将深入探讨20个常用的单字母正则表达式,并通过实例来展示它们的使用方法。
1. \b在正则表达式中,\b表示单词的边界。
它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。
2. \d\d表示任意一个数字字符。
它可以用来匹配任何数字,例如\d+可以匹配一个或多个数字字符。
3. \w\w表示任意一个字母、数字或下划线字符。
它可以用来匹配单词字符,例如\w+可以匹配一个或多个单词字符。
4. \s\s表示任意一个空白字符,包括空格、制表符、换行符等。
它可以用来匹配空白字符,例如\s+可以匹配一个或多个空白字符。
5. \.\.表示匹配任意一个字符,包括标点符号和空格等。
它可以用来匹配任意字符,例如\.可以匹配任意一个字符。
6. \A\A表示匹配字符串的开始。
它可以用来确保匹配发生在字符串的开头。
7. \Z\Z表示匹配字符串的结束。
它可以用来确保匹配发生在字符串的结尾。
8. \b\b表示单词的边界。
它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。
9. \D\D表示任意一个非数字字符。
它可以用来匹配任何非数字字符。
10. \W\W表示任意一个非单词字符。
它可以用来匹配任何非单词字符。
11. \S\S表示任意一个非空白字符。
它可以用来匹配任何非空白字符。
12. \[\[表示匹配方括号。
它可以用来匹配包含在方括号内的字符。
13. \]\]表示匹配方括号。
它可以用来匹配包含在方括号内的字符。
14. \(\(表示匹配左括号。
它可以用来匹配包含在左括号内的字符。
15. \)\)表示匹配右括号。
它可以用来匹配包含在右括号内的字符。
16. \{\{表示匹配左花括号。
它可以用来匹配包含在左花括号内的字符。
17. \}\}表示匹配右花括号。
正则表达式基本符号:^ 表示匹配字符串的开始位置 (例外用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)$ 表示匹配字符串的结束位置* 表示匹配零次到多次+ 表示匹配一次到多次 (至少有一次)表示匹配零次或一次. 表示匹配单个字符| 表示为或者,两项中取一项( ) 小括号表示匹配括号中全部字符[ ] 中括号表示匹配括号中一个字符范围描述如[0-9 a-z A-Z]{ } 大括号用于限定匹配次数如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符{n,m}表示至少n,最多m\ 转义字符如上基本符号匹配都需要转义字符如 \* 表示匹配*号\w 表示英文字母和数字 \W 非字母和数字\d 表示数字 \D 非数字常用的正则表达式匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]匹配空行的正则表达式:\n[\s| ]*\r匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/匹配首尾空格的正则表达式:(^\s*)|(\s*$)匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?sql语句:^(select|drop|delete|create|update|insert).*$1、非负整数:^\d+$2、正整数:^[0-9]*[1-9][0-9]*$3、非正整数:^((-\d+)|(0+))$4、负整数:^-[0-9]*[1-9][0-9]*$5、整数:^-?\d+$6、非负浮点数:^\d+(\.\d+)?$7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$8、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$9、负浮点数:^(-((正浮点数正则式)))$10、英文字符串:^[A-Za-z]+$11、英文大写串:^[A-Z]+$12、英文小写串:^[a-z]+$13、英文字符数字串:^[A-Za-z0-9]+$14、英数字加下划线串:^\w+$15、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$17、邮政编码:^[1-9]\d{5}$18、中文:^[\u0391-\uFFE5]+$19、电话号码:^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$20、手机号码:^((\d2,3)|(\d{3}\-))?13\d{9}$21、双字节字符(包括汉字在内):^\x00-\xff22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)23、匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/>24、匹配空行:\n[\s| ]*\r25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *=*('|")?(\w|\\|\/|\.)+('|"| *|>)?26、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?28、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)29、提取信息中的中国手机号码:(86)*0*13\d{9}30、提取信息中的中国固定电话号码:(\d3,4|\d{3,4}-|\s)?\d{8}31、提取信息中的中国电话号码(包括移动和固定电话):(\d3,4|\d{3,4}-|\s)?\d{7,14}32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}33、提取信息中的浮点数(即小数):(-?\d*)\.?\d+34、提取信息中的任意数字:(-?\d*)(\.\d+)?35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)36、电话区号:/^0\d{2,3}$/37、腾讯QQ号:^[1-9]*[1-9][0-9]*$38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$39、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$。
正则表达式实例详解正则表达式实例详解正则表达式(regular expression)是一种特殊的文本格式,用于搜索、替换和验证文本中的字符串。
它可以用来查找文本中的某些结构,也可以用来修改文本的某些部分。
正则表达式具有良好的易读性和可维护性,并且可以有效地捕获文本中的模式,从而使文本处理变得更加简单。
正则表达式有着复杂的语法,但是它也是一种非常有效的工具,可以帮助我们在文本中快速搜索和替换想要的内容。
下面就来看看几个常用的正则表达式实例,以加深大家对它的理解。
1. 字符集匹配:[abcd]这个正则表达式可以用来匹配文本中任意一个字符,其中字符可以是a、b、c或d中的任意一个。
2. 通配符匹配:.这个正则表达式可以用来匹配文本中任意一个字符,不论该字符是什么(除了换行符之外)。
3. 范围匹配:[a-z]这个正则表达式可以用来匹配文本中任意一个小写字母,其中字母可以是a到z之间的任意一个。
4. 重复匹配:a{3}这个正则表达式可以用来匹配文本中连续三个字符a,如aaaa。
5. 否定匹配:[^abc]这个正则表达式可以用来匹配文本中除了a、b、c之外的任意一个字符。
6. 前瞻:(?=abc)这个正则表达式可以用来匹配文本中任意位置后跟着abc字符串的字符,即使abc不是要被匹配的字符串,只是一个前瞻。
7. 零宽断言:(?!abc)这个正则表达式可以用来匹配文本中任意位置后不跟着abc字符串的字符。
8. 分组:(abc|def)这个正则表达式可以用来匹配文本中任意位置的abc 或者def字符串。
以上就是正则表达式实例详解,其中包括了字符集匹配、通配符匹配、范围匹配、重复匹配、否定匹配、前瞻、零宽断言以及分组等实例。
正则表达式的最大优点是可以有效地捕获文本中的模式,可以有效地进行文本处理,比如查找、替换、验证等。
正则表达式的语法有着一定的复杂度,但是只要掌握了它的一些基本原理,就可以用它来快速处理文本中的字符串。
易语言正则表达式易语言采用的是一种特殊的正则表达式语法,其用法与传统的正则表达式有一些差异。
易语言的正则表达式采用的是"%"作为匹配符号,即"%"后跟一个特殊字符来表示匹配的模式,以下是一些常用的模式:1. %d:匹配任意一个数字,相当于\d。
2. %D:匹配任意一个非数字字符,相当于\D。
3. %w:匹配任意一个字母或数字字符,相当于\w。
4. %W:匹配任意一个非字母或数字字符,相当于\W。
5. %s:匹配任意一个空白字符,包括空格、换行、制表符等,相当于\s。
6. %S:匹配任意一个非空白字符,相当于\S。
7. %b:匹配一个单词边界,相当于\b。
8. %%:匹配一个百分号%。
除了上述的特殊模式外,易语言的正则表达式还可以使用一些正则表达式的元字符,如"."表示匹配任意一个字符,"[]"表示一个字符集合,"*"表示零个或多个匹配,"+"表示一个或多个匹配,"?"表示零个或一个匹配等。
在易语言中使用正则表达式,可以使用Pattern变量来指定匹配模式,再使用Regex函数来进行匹配。
例如:Pattern = "%d+%w" ' 匹配一个或多个数字后跟一个字母或数字字符Result = Regex("123abc", Pattern) ' 返回True,表示匹配成功需要注意的是,易语言的正则表达式是区分大小写的,默认情况下是匹配整个字符串的。
如果只需要匹配部分字符串,可以使用"%"符号配合"+?"模式进行非贪婪匹配,例如:Pattern = "h.*?o" ' 非贪婪匹配,匹配以"h"开头、以"o"结尾的最短字符串Result = Regex("hello world", Pattern) ' 返回True,表示匹配成功。
易语言正则表达式多个子匹配文本在易语言中,可以使用正则表达式的子匹配来获取多个文本片段。
每个子匹配可以用一对圆括号来表示,例如:```vb。
Dim str As String。
Dim pattern As String。
If RegExMatch(str, pattern, 1) = 1 Then。
Dim email As String。
email = RegExSubMatch(str, pattern, 1, 1)。
MsgBox "Your email is: " & email。
End If。
```。
在调用 `RegExSubMatch` 函数时,我们传递了第三个参数 `1`,表示获取正则表达式第一个子匹配的文本。
然后,我们传递了第四个参数`1`,表示获取第一个子匹配的第一个文本片段。
如果我们的正则表达式有多个子匹配,我们可以通过传递不同的第四个参数来获取每个子匹配的文本。
例如,如果我们使用正则表达式`(\d{2})-(\d{2})-(\d{4})`来匹配日期(格式为`DD-MM-YYYY`),则第一个子匹配表示日期的天数,第二个子匹配表示月份,第三个子匹配表示年份。
我们可以使用以下代码来获取所有的子匹配文本:```vb。
Dim str As String。
str = "Today is 31-01-2022"。
Dim pattern As String。
pattern = "(\d{2})-(\d{2})-(\d{4})"。
If RegExMatch(str, pattern, 1) = 1 Then。
Dim day As String。
day = RegExSubMatch(str, pattern, 1, 1)。
Dim month As String。
month = RegExSubMatch(str, pattern, 1, 2)。
正则表达式(regular expression)前言正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。
只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。
索引1._引子2._正则表达式的历史3._正则表达式定义3.1_普通字符3.2_非打印字符3.3_特殊字符3.4_限定符3.5_定位符3.6_选择3.7_后向引用4._各种操作符的运算优先级5._全部符号解释6._部分例子7._正则表达式匹配规则7.1_基本模式匹配7.2_字符簇7.3_确定重复出现--------------------------------------------------------------------------------1. 引子目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP 等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。
正则表达式的使用,可以通过简单的办法来实现强大的功能。
为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。
例子: ^.+@.+\\..+$这样的代码曾经多次把我自己给吓退过。
可能很多人也是被这样的代码给吓跑的吧。
继续阅读本文将让你也可以自由应用这样的代码。
注意:这里的第7部分跟前面的内容看起来似乎有些重复,目的是把前面表格里的部分重新描述了一次,目的是让这些内容更容易理解。
2. 正则表达式的历史正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
最全的常⽤正则表达式⼤全⼀、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 ⾄少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和⾮零开头的数字:^(0|[1-9][0-9]*)$6 ⾮零开头的最多带两位⼩数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位⼩数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8 正数、负数、和⼩数:^(\-|\+)?\d+(\.\d+)?$9 有两位⼩数的正实数:^[0-9]+(.[0-9]{2})?$10 有1~3位⼩数的正实数:^[0-9]+(.[0-9]{1,3})?$11 ⾮零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$12 ⾮零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$13 ⾮负整数:^\d+$ 或 ^[1-9]\d*|0$14 ⾮正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$15 ⾮负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$16 ⾮正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$⼆、校验字符的表达式1 汉字:^[\u4e00-\u9fa5]{0,}$2 英⽂和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$3 长度为3-20的所有字符:^.{3,20}$4 由26个英⽂字母组成的字符串:^[A-Za-z]+$5 由26个⼤写英⽂字母组成的字符串:^[A-Z]+$6 由26个⼩写英⽂字母组成的字符串:^[a-z]+$7 由数字和26个英⽂字母组成的字符串:^[A-Za-z0-9]+$8 由数字、26个英⽂字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$9 中⽂、英⽂、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$10 中⽂、英⽂、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$11 可以输⼊含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+12 禁⽌输⼊含有~的字符:[^~\x22]+三、特殊需求表达式1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$4 ⼿机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$6 国内电话号码(0511-*******、021-********):\d{3}-\d{8}|\d{4}-\d{7}7 ⾝份证号(15位、18位数字):^\d{15}|\d{18}$8 短⾝份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$11 强密码(必须包含⼤⼩写字母和数字的组合,不能使⽤特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$12 ⽇期格式:^\d{4}-\d{1,2}-\d{1,2}13 ⼀年的12个⽉(01~09和1~12):^(0?[1-9]|1[0-2])$14 ⼀个⽉的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$15 钱的输⼊格式:16 1.有四种钱的表⽰形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$17 2.这表⽰任意⼀个不以0开头的数字,但是,这也意味着⼀个字符"0"不通过,所以我们采⽤下⾯的形式:^(0|[1-9][0-9]*)$18 3.⼀个0或者⼀个不以0开头的数字.我们还可以允许开头有⼀个负号:^(0|-?[1-9][0-9]*)$19 4.这表⽰⼀个0或者⼀个可能为负的开头不为0的数字.让⽤户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下⾯我们要加的是说明可能的⼩数部分:^[0-9]+(.[0-9]+)?$20 5.必须说明的是,⼩数点后⾯⾄少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$21 6.这样我们规定⼩数点后⾯必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$22 7.这样就允许⽤户只写⼀位⼩数.下⾯我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$23 8.1到3个数字,后⾯跟着任意个逗号+3个数字,逗号成为可选,⽽不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$24 备注:这就是最终结果了,别忘了"+"可以⽤"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在⽤函数时去掉去掉那个反斜杠,⼀般的错误都在这⾥25 xml⽂件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$26 中⽂字符的正则表达式:[\u4e00-\u9fa5]27 双字节字符:[^\x00-\xff] (包括汉字在内,可以⽤来计算字符串的长度(⼀个双字节字符长度计2,ASCII字符计1))28 空⽩⾏的正则表达式:\n\s*\r (可以⽤来删除空⽩⾏)29 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (⽹上流传的版本太糟糕,上⾯这个也仅仅能部分,对于复杂的嵌套标记依旧⽆能为⼒)30 ⾸尾空⽩字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以⽤来删除⾏⾸⾏尾的空⽩字符(包括空格、制表符、换页符等等),⾮常有⽤的表达式)31 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)32 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字) 33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有⽤) 34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))20个正则表达式必知(能让你少写1,000⾏代码)正则表达式(regular expression)描述了⼀种字符串匹配的模式,可以⽤来检查⼀个串是否含有某种⼦串、将匹配的⼦串做替换或者从某个串中取出符合某个条件的⼦串等。
常用正则表达式速查手册一、正则表达式基本符号1. \d:匹配任意数字,等价于[0-9]。
2. \D:匹配任意非数字字符。
3. \s:匹配任意空白字符,包括空格、制表符、换页符等等。
4. \S:匹配任意非空白字符。
5. \w:匹配任意字母、数字或下划线字符,等价于[a-zA-Z0-9_]。
6. \W:匹配任意非字母、数字或下划线字符。
7. ^:匹配输入字符串的开始位置。
8. $:匹配输入字符串的结束位置。
二、字符类1. []:匹配方括号中的任意字符,例如[abc]将匹配字符a、b或c。
2. [^...]:排除方括号中的任意字符,例如[^abc]将匹配除a、b、c之外的任意字符。
3. \n:匹配换行符。
4. \r:匹配回车符。
5. \t:匹配制表符。
6. \v:匹配垂直制表符。
7. \f:匹配换页符。
三、选择、分组和引用1. |:用于选择,例如a|b将匹配字符a或b。
2. ():用于分组,例如(abc)将将abc作为一个整体进行匹配。
3. \n:表示对前面的子模式进行引用,例如(abc)\1将匹配相同的前缀abc。
四、量词1. *:表示前面的字符或子模式可以出现0次或多次。
2. +:表示前面的字符或子模式可以出现1次或多次。
3. ?:表示前面的字符或子模式可以出现0次或1次。
4. {n}:表示前面的字符或子模式恰好出现n次。
5. {n,}:表示前面的字符或子模式至少出现n次。
6. {n,m}:表示前面的字符或子模式出现次数在n到m之间。
五、边界和模式1. ^:表示输入字符串的开始位置。
2. $:表示输入字符串的结束位置。
3. \b:表示单词边界,即前后字符必须是单词和空格或空。
易语言正则表达式大全包含以下几个主要部分:
1. 字符集:
* `[abc]`:匹配a、b 或c。
* `[^abc]`:匹配除方括号内字符以外的任意字符。
* `[a-zA-Z]`:匹配所有英文字母。
* `[0-9]`:匹配数字。
* `\d`:匹配数字,等价于[0-9]。
* `\D`:匹配非数字,等价于`[^0-9]`。
* `\s`:匹配空白字符(空格、制表符、换行符等)。
* `\S`:匹配非空白字符。
* `\w`:匹配单词字符(字母、数字、下划线),等价于`[a-zA-Z0-9_]`。
* `\W`:匹配非单词字符。
2. 量词:
* `?`:出现0 次或1 次。
* `*`:出现0 次或多次。
* `+`:出现1 次或多次。
* `{n}`:出现n 次。
* `{n,}`:出现n 次或多次。
* `{n,m}`:出现n 到m 次。
3. 分组与选择:
* `( )`:分组,将多个字符组合成一个整体。
* `|`:选择,匹配该符号前后的任意一个表达式。
4. 定位符:
* `^`:匹配输入字符串的开始位置。
* `$`:匹配输入字符串的结束位置。
5. 转义字符:
* `\`:用于转义特殊字符,如`.`、`*`、`+` 等。
6. 预定义模式:
* `\b`:匹配一个单词边界,即字与空格间的位置。
* `\B`:匹配非单词边界的位置。
7. 反向引用:
* `\1`、`\2`、`\3` 等:用于引用前面的分组中捕获的内容。
8. 零宽断言:
* `(?=exp)`:正向肯定预查,匹配后面跟随exp 的位置。
* `(?!exp)`:正向否定预查,匹配后面不跟随exp 的位置。
* `(?<=exp)`:反向肯定预查,匹配前面是exp 的位置。
* `(?<!exp)`:反向否定预查,匹配前面不是exp 的位置。
9. 贪婪与懒惰量词:
* `*?`、`+?`、`{n,}?` 等:懒惰量词,尽可能少地匹配。
* `*`、`+`、`{n,}` 等:贪婪量词,尽可能多地匹配。
10. 修饰符:
* `i`:不区分大小写。
* `g`:全局匹配。
* `m`:多行模式。
* `s`:让`.` 匹配包括换行在内的所有字符。
* `u`:Unicode 模式,让表达式支持Unicode 字符集。
* `y`:粘性搜索,只从指定位置开始匹配。
请注意,在使用易语言正则表达式时,确保正确设置和调用相关函数和方法,以获得预期的匹配结果。