IDCS3正则表达式应用实例对照表已验证.docx

上传人:b****8 文档编号:10286899 上传时间:2023-02-09 格式:DOCX 页数:17 大小:23.64KB
下载 相关 举报
IDCS3正则表达式应用实例对照表已验证.docx_第1页
第1页 / 共17页
IDCS3正则表达式应用实例对照表已验证.docx_第2页
第2页 / 共17页
IDCS3正则表达式应用实例对照表已验证.docx_第3页
第3页 / 共17页
IDCS3正则表达式应用实例对照表已验证.docx_第4页
第4页 / 共17页
IDCS3正则表达式应用实例对照表已验证.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

IDCS3正则表达式应用实例对照表已验证.docx

《IDCS3正则表达式应用实例对照表已验证.docx》由会员分享,可在线阅读,更多相关《IDCS3正则表达式应用实例对照表已验证.docx(17页珍藏版)》请在冰豆网上搜索。

IDCS3正则表达式应用实例对照表已验证.docx

IDCS3正则表达式应用实例对照表已验证

Indesign-cs3中正则表达式应用实例(已验证,冒号前为表达式,复制后粘贴即可,冒号后为匹配项)

有不明白的地方可以联系我共同探讨!

(123733258@)

\[*.[[:

digit:

]]{1,3}]:

匹配[数字](上角标)

\[\d+\]:

匹配[数字](上角标)

^~K+.*$:

查找正文(原文正文、译文正文)

(?

<=·原文·)[\S\s]+(?

=\|译文\|):

匹配原文与译文间文字

\[*.[[:

digit:

]]{1,3}](~K+.*):

匹配[数字]+1段文字

\(\d+\)(~K+.*$):

匹配(数字)+1段文字

\(([[:

digit:

]]{1,3})\):

匹配(数字)

\(([[:

digit:

]]{1,3})\)(~K+.*)匹配(数字)+1段文字

【注释】:

【~K+】

【:

\r【

】:

】\r

^.{3}$:

匹配长度为3的字符(〔记〕)

\[1|\[2|\[*.[[:

digit:

]]]:

匹配[]里的数字

\|$\r[~b~b+]:

匹配|+1行无文字空行

·$\r[~b~b+]:

匹配·+1行无文字空行

^(.(?

!

))+$:

匹配一段文字

【】【】【】

^\s+(?

=\w{2,}):

匹配段首空格(包括不带文字空行)

\s+$:

匹配段尾空格

\s+(?

=\w{2,}):

匹配所有空格(中文、英文)

~b~b+:

段尾+1行不含文字空行

(\s*.*\w*\d*):

匹配上1行段尾+下1段文字

(?

m)^\w+:

匹配段首一个单词、一句话、一组数字(不含标点,不包括段首带空格字符)

[\r][\u]:

1行不含文字空行+1行英文(段首不含空格、不含标点)

[\r\n]+:

匹配段尾

^\s*~K:

空行+1行中文(段首含空格,不含标点)

[[:

punct:

]]:

匹配所有标点(包含中文、英文标点)

[^~K^[:

punct:

]^\d]:

匹配所有英文(不含中文、标点、数字)

[^^[:

punct:

]^\d]:

匹配所有英文(不含中文、标点、数字)

\\:

\后面带一个空格

\\~K:

\后面带一个汉字

[a-z,A-Z]:

匹配所有英文字母(包含大小写)

[[:

lower:

]]:

匹配所有小写英文字母

[[:

upper:

]]:

匹配所有大写英文字母

\l:

匹配小写字母

\u:

匹配大写字母

[\l\u]:

匹配大、小写字母

(?

<=((|\())(.+?

)(?

=()|\))):

匹配()内包含的所有文字

(")(\w+)("):

匹配“”里的文字(替换:

$2可将引号删除)

[~K]:

匹配中文汉字(匹配一个汉字)

~K+:

匹配汉字(一个、多个汉字)

[^\x00-\xff]+:

匹配所有中文+全角标点符号

(?

<=.)\.:

匹配.

(^[^\[\]]+?

):

匹配段首第一空格+段尾

[[:

digit:

]]:

匹配所有数字

^[0-9]:

匹配所有数字

\d:

匹配数字字符

\D:

匹配非数字字符

\d+:

匹配数字字符(单个、连续的数字)

[\d]、[$0-9]:

匹配数字字符

\d+\.?

\d*:

匹配数字(包含小数和小数点)

[[:

alpha:

]]:

匹配文字字符(包含中文、英文,不含数字、标点)

[[:

alnum:

]]:

匹配英文字母、数字

\w:

匹配文字字符(包含中文、英文,不含数字、标点)

\W:

匹配所有非汉字、字母、数字、下划线的字符

[:

任意英文字母:

]:

冒号里字符可以改成任意字母

^:

匹配行首(包含有空格行首、无文字空行)

^.:

匹配每段第一个字符(中、英文、括号、破折号)

$:

匹配行尾(包含有空格行尾、无文字空行)

^$:

匹配无文字空行

((?

<=\r)[\r]+|(\r*\Z)):

匹配无文字空行

\r:

匹配回车

\w*:

匹配一个英文单词或一句中文(包含空行、——)

\s:

匹配任意空白字符

\S:

匹配所有非空白字符

(((?

<=)^[]+)|((|+)+(?

<=)($|$\r|\r)))匹配所有半角空格(手工空格,不含英文单词间空格)

\S+:

匹配不包含空白符的字符串(一个英文单词、一段中文)

^\s+:

段首空格(包括无字空行)

^\S+:

一段话(中文)

\s*\r:

匹配行尾+无字空行

^\s*\r:

匹配无文字空行

([\s\S]*):

匹配表格中每一个单元格

([\d\D]*):

匹配表格中每一个单元格

([\w\W]*):

匹配表格中每一个单元格

(^a-zA-Z|\x{ff0c}):

匹配英文里全角逗号

\b(~K)(~K)\b:

匹配连续的两个汉字(替换:

两字中间加一个全角空格,$1~m$2)

~K$:

匹配段尾最后一个字(段尾不带标点)

[~K]+:

匹配中文汉字

[^~K]+:

匹配非中文(英文、标点)

(.....[[:

punct:

]]+\r)|(~K~K\r):

匹配段尾5个汉字+1个标点(.代表数量)

...\r:

匹配3个字符+段尾

..[[:

punct:

]]*$:

匹配段尾字符+段尾

[①-⑩]~K:

匹配①-⑩加一个汉字([]中代码可换)

 

以下未验证:

匹配:

(\()([^\)]*([~K|「|『|+|=|-]+)[^\)]*)(\))

替换

($2)

这里解释一下。

最开始我是这样写的(\()([^\)]*[~K]+[^\)]*)(\))

因为看到上面所说的情况,所以列举了「,『,+,=,-这几种情况。

如果有其他比如~@等情况还可以再加进去。

但是嵌套括号解决不了,本来想用平衡组/递归匹配的方法,怎奈所学有限。

匹配嵌套最多12层括号的正则表达式

reg_12=/\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()]|\(([^()])*\))*\))*\))*\))*\))*\))*\))*\))*\))*\))*\))*\)/g;

根据这个原理可以实现很多复杂的判断,一般来说,嵌套12层括号几乎够用了,不够根据规律自己再加,因为这里面没有最小匹配判断,因此速度是很快的。

\Z:

文章末尾

^.+$:

整段文字(含中、英文)

(|+)(?

<=)($):

消除行末空格

(((?

<=)^[]+)|((|+)+(?

<=)($))):

半角空格(段首、段尾空格,不含英文单词间空格)

(\d\d\d):

可以匹配这一组数字中的相连的三位数123,456,789,012元

((?

<=\r)[\r]+|(\r*\Z)):

表示无文字的空行

\b[\l\u]:

每个英文单词的头一个字母(含大写,包含人名:

D.K.)

\b(?

')\l或\<(?

')\l:

每个英文单词的头一个小写字母

\S\s:

一个字符+一个空格(中、英文)

[^\\\0-9^]:

除了数字以外所有字符(含标点、空格)

[^\"\']:

除了单、双引号以外所有字符(含标点、空格)

^[1-9]\d{5}:

表示邮政编码

[^]:

匹配一个不在指定范围内的字符,如:

[^a-z]表示除小写字母以外任意的字符

[^a-z]:

表示非小写字母的其他任意字符

^\s+:

表示段首1个以上空格(含无字空行)

\s+:

表示一个以上空格(含无字空行)

(\w)\1{2,}:

表示连续相同({}里的数字可以任意更改,如:

aaaa,数字就改成3)的字符

(^[^\r]+\r):

整体一段(中、英文,不含无文字空行)

^(\(\d{3,4}\)|\d{3,4})?

\d{7,8}$:

匹配电话号码(11位手机号、座机:

0431-********、88888888、8888888)

^(\(\d{3,4}\)|\d{3,4}-)?

\d{7,8}$:

匹配座机电话号码(座机:

0431********、88888888、8888888)

\d{18}|\d{15}$:

匹配身份证号(15位和18位)

((2[0-4]\d|25[0-5]|[01]?

\d\d?

)\.){3}(2[0-4]\d|25[0-5]|[01]?

\d\d?

):

匹配IP地址(192.168.6.89/192.168.6.0/202.098.000.068/255.255.255.000)

((2([0-4]\d|5[0-5])|1\d{2}|\d{2}|\d)\.){3}(2([0-4]\d|5[0-5])|1\d{2}|\d{2}|\d):

匹配IP地址

(192.168.6.89/192.168.6.0/202.098.0.068/255.255.255.0)

^.{2,}$:

匹配非空白行(至少两个字符以上)

^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13579])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$:

匹配年、月、日:

YYYY-MM-DD

(\b[a-zA-Z]+\b)(.*?

):

匹配英文单词+一个空格

(^\s+|\s+$):

匹配空格(不含英文单词间的空格)

[[:

space:

]]:

匹配所有空格

[\l\u](?

=([\l\u]):

查找带括号英文单词前的字母(ok(ok))

(")(\w+)("):

匹配引号里的字符(中、英文)

(\s*.*\w*\d*):

匹配一段中、英文文字(包含这段文字上一段结尾、非文字空行)

(?

m)^\w:

匹配段落开头第一不含空格字符(包括中、英文、数字)

(?

m)^\w+:

匹配段落开头第一个不含空格字符(一个英文单词、一句中文、一串数字,不含带括号的一句

(?

-m)^\w:

匹配文章的开头

(?

<=[\l\u]),:

匹配英文中的全角逗号

平年:

年份可统一写作:

(?

!

0000)[0-9]{4}

包括平年在内的所有年份的月份都包含1-28日:

(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])

包括平年在内的所有年份除2月外都包含29和30日:

(0[13-9]|1[0-2])-(29|30)

包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日:

(0[13578]|1[02])-31)

合起来就是除闰年的2月29日外的其它所有日期:

(?

!

0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)

润年

能被4整除但不能被100整除的年份:

([0-9]{2}(0[48]|[2468][048]|[13579][26])

能被400整除的年份。

能被400整除的数肯定能被100整除,因此后两位肯定是00:

(0[48]|[2468][048]|[13579][26])00

合起来就是所有闰年的2月29日:

([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)

四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则

^((?

!

0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。

^(?

:

(?

!

0000)[0-9]{4}-(?

:

(?

:

0[1-9]|1[0-2])-(?

:

0[1-9]|1[0-9]|2[0-8])|(?

:

0[13-9]|1[0-2])-(?

:

29|30)|(?

:

0[13578]|1[02])-31)|(?

:

[0-9]{2}(?

:

0[48]|[2468][048]|[13579][26])|(?

:

0[48]|[2468][048]|[13579][26])00)-02-29)$

正则表达式--验证手机号码:

13[0-9]{9}

实现手机号前带86或是+86的情况:

^((\+86)|(86))?

(13)\d{9}$

电话号码与手机号码同时验证:

(^(\d{3,4}-)?

\d{7,8})$|(13[0-9]{9})

提取信息中的网络链接:

(h|H)(r|R)(e|E)(f|F)*=*('|")?

(\w|\\|\/|\.)+('|"|*|>)?

提取信息中的邮件地址:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

提取信息中的图片链接:

(s|S)(r|R)(c|C)*=*('|")?

(\w|\\|\/|\.)+('|"|*|>)?

提取信息中的IP地址:

(\d+)\.(\d+)\.(\d+)\.(\d+)

提取信息中的中国手机号码:

(86)*0*13\d{9}

提取信息中的中国固定电话号码:

(\(\d{3,4}\)|\d{3,4}-|\s)?

\d{8}

提取信息中的中国电话号码(包括移动和固定电话):

(\(\d{3,4}\)|\d{3,4}-|\s)?

\d{7,14}

提取信息中的中国邮政编码:

[1-9]{1}(\d+){5}

提取信息中的中国身份证号码:

\d{18}|\d{15}

提取信息中的整数:

\d+

提取信息中的浮点数(即小数):

(-?

\d*)\.?

\d+

提取信息中的任何数字:

(-?

\d*)(\.\d+)?

提取信息中的中文字符串:

[\u4e00-\u9fa5]*

提取信息中的双字节字符串(汉字):

[^\x00-\xff]

使用extJs时能常用的正则表达式

"^\d+$"  //非负整数(正整数+0)

"^[0-9]*[1-9][0-9]*$"  //正整数

"^((-\d+)|(0+))$"  //非正整数(负整数+0)

"^-[0-9]*[1-9][0-9]*$"  //负整数

"^-?

\d+$"    //整数

"^\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

/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$///年-月-日

/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$///月/日/年

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?

)$"//Emil

"(d+-)?

(d{4}-?

d{7}|d{3}-?

d{8}|^d{7,8})(-d+)?

"//电话号码

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"//IP地址

匹配中文字符的正则表达式:

[\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):

[^\x00-\xff]

匹配空行的正则表达式:

\n[\s|]*\r

匹配HTML标记的正则表达式:

/<(.*)>.*<\/\1>|<(.*)\/>/

匹配首尾空格的正则表达式:

(^\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]*$

下表是元字符及其在正则表达式上下文中的行为的一个完整列表:

\将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。

^匹配输入字符串的开始位置。

如果设置了RegExp对象的Multiline属性,^也匹配'\n'或'\r'之后的位置。

$匹配输入字符串的结束位置。

如果设置了RegExp对象的Multiline属性,$也匹配'\n'或'\r'之前的位置。

*匹配前面的子表达式零次或多次。

+匹配前面的子表达式一次或多次。

+等价于{1,}。

?

匹配前面的子表达式零次或一次。

?

等价于{0,1}。

{n}n是一个非负整数,匹配确定的n次。

{n,}n是一个非负整数,至少匹配n次。

{n,m}m和n均为非负整数,其中n<=m。

最少匹配n次且最多匹配m次。

在逗号和两个数之间不能有空格。

?

当该字符紧跟在任何一个其他限制符(*,+,?

{n},{n,},{n,m})后面时,匹配模式是非贪婪的。

非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。

.匹配除"\n"之外的任何单个字符。

要匹配包括'\n'在内的任何字符,请使用象'[.\n]'的模式。

(pattern)匹配pattern并获取这一匹配。

(?

:

pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

(?

=pattern)正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。

这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

(?

!

pattern)负向预查,与(?

=pattern)作用相反

x|y匹配x或y。

[xyz]字符集合。

[^xyz]负值字符集合。

[a-z]字符范围,匹配指定范围内的任意字符。

[^a-z]负值字符范围,匹配任何不在指定范围内的任意字符。

\b匹配一个单词边界,也就是指单词和空格间的位置。

\B匹配非单词边界。

\cx匹配由x指明的控制字符。

\d匹配一个数字字符。

等价于[0-9]。

\D匹配一个非数字字符。

等价于[^0-9]。

\f匹配一个换页符。

等价于\x0c和\cL。

\n匹配一个换行符。

等价于\x0a和\cJ。

\r匹配一个回车符。

等价于\x0d和\cM。

\s匹配任何空白字符,包括空格、制表符、换页符等等。

等价于[\f\n\r\t\v]。

\S匹配任何非空白字符。

等价于[^\f\n\r\t\v]。

\t匹配一个制表符。

等价于\x09和\cI。

\v匹配一个垂直制表符。

等价于\x0b和\cK。

\w匹配包括下划线的任何单词字符。

等价于'[A-Za-z0-9_]'。

\W匹配任何非单词字符。

等价于'[^A-Za-z0-9_]'。

\xn匹配n,其中n为十六进制转义值。

十六进制转义值必须为确定的两个数字长。

\num匹配num,其中num是一个正整数。

对所获取的匹配的引用。

\n标识一个八进制转义值或一个后向引用。

如果\n之前至少n个获取的子表达式,则n为后向引用。

否则,如果n为八进制数字(0-7),则n为一个八进制转义值。

\nm标识一个八进制转义值或一个后向引用。

如果\nm之前至少有isprecededbyatleastnm个获取得子表达式,则nm为后向引用。

如果\nm之前至少有n个获取,则n为一个后跟文字m的后向引用。

如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。

\nml如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。

\un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。

匹配中文字符的正则表达式:

[u4e00-u9fa5]

匹配双字节字符(包括汉字在内):

[^x00-xff]

应用:

计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){returnthis.replace([^x00-xff]/g,"aa").length;}

匹配空行的正则表达式:

n[s|]*r

匹配HTML标记的正则表达式:

/<(.*)>.*|<(.*)/>/

匹配首尾空格的正则表达式:

(^s*)|(s*$)

应用:

javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim=function()

{

returnthis.replace(/(^s*)|(s*$)/g,"");

}

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

functionIP2V(ip)

{

re=/(d+).(d+).(d+).(d+)/g//匹配IP地址的正则表达式

if(re.test(ip))

{

r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1