
ID-CS3正则表达式应用实例对照表(已验证).doc
15页Indesign-cs3中正则表达式应用实例(已验证,冒号前为表达式,复制后粘贴即可,冒号后为匹配项)有不明白的地方可以联系我共同探讨!!!(123733258@.com)\[*.[[: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(?
能被400整除的数肯定能被100整除,因此后两位肯定是00:(0[48]|[2468][048]|[13579][26])00 合起来就是所有闰年的2月29日:([0-9]{2}(0[48]|[2468][048]|[13579][26])|(。
