注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

圆兔工具箱官网

微信公众号:圆兔(微信号:ytgjxapp)

 
 
 

日志

 
 

Tasker笔记之正则表达式(持续更新中)  

2013-12-02 17:15:12|  分类: 8.安卓 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这是我学Tasker的长期更新的笔记和个人实践总结,都是干货,都是自己觉得重要的东西,因为是从很旧的版本就开始学习的,所以有些可能已经按新的版本和经验更新改过了,有些可能还是旧的。
============================
(?=)如为结尾$须放在括号内
====特别总结========
删除未尾一个非换行的字符:替换 .$ 为空白
表达式不要匹配空字符串,否则会一直得到匹配成功,而结果什么都没有匹配到
能匹配空字符串的子匹配不要循环无限次,若括号内的子表达式中的每一部分都可匹配0次,而这个括号整体又可匹配无限次,可能死循环
| 的左右两边,对某个字符最好只有一边可以匹配,这样,不会因为 "|" 两边的表达式因为交换位置而有所不同
=====属性=======这个只是记录,tasker里面没这些或只是勾选
/i 使正则表达式对大小写不敏感;(?-i) 关闭大小写不敏感
/s 开启单行模式,即.可匹配换行符
/m 开启多行模式,即^和$匹配每行的开头和结尾
Global 主要在将表达式用来替换时起作用,配置为 Global 表示替换所有的匹配
IgnorePatternWhitespace(忽略空白) 忽略表达式中的非转义空白并启用由#标记的注释。
RightToLeft(从右向左查找) 匹配从右向左而不是从左向右进行。
ExplicitCapture(显式捕获) 仅捕获已被显式命名的组。
ECMAScript(JavaScript兼容模式) 使表达式的行为与它在JavaScript里的行为一致。
=====位置匹配,本身不匹配任何字符=======
^ $ 匹配开头/结尾。^和$同用表示精确匹配    $
\b  与单词(字母、数字和下划线)边界匹配,首尾使用\b匹配完整单词;\B 与非单词边界匹配
====限制符(次数):{n},{n,},{n,m},*,+,?========
贪婪模式:尽可能多的匹配,即可匹配可不匹配的表达式,尽可能的匹配
非贪婪模式:?紧跟在其他限制符后,尽可能少的匹配,前提是不阻碍匹配成功

{n}   匹配前一字符(模式)n次
{n,}  匹配前一字符(模式)n次及以上。*等价{0,};+等价{1,}
{n,m} 匹配前一字符(模式)n-m次。?等价{0,1}
====组匹配===========
x|y              匹配x或y;x或y可是空白
(pattern)        与模式匹配并捕获文本到自动命名的组里;(?:pattern)与模式匹配,但不作为子匹配,即不能被反向引用,不编号
(?<name>pattern) 与模式匹配并捕获文本到名称为name的组里;也可写成(?'name'pattern)
(?=pattern)      正向预查,放在要匹配的右边,要出现但不作为匹配;(?!pattern)为不要出现
(?<=pattern)     负向预查,放在要匹配的左边,要出现但不作为匹配;(?<!pattern)为不要出现
(?#comment)      注释

\n       反向引用,\1引用第1对括号内匹配到的字符串……,从左向右以分组的左括号为标志排序。如:"(.)\1"匹配两个连续的相同的字符
\k<name> 反向引用指定名称组
====字符集 转义序列===========
.     匹配换行符以外的任何一个字符
[xyz] 字符集,与其中一字符匹配;前加^表示非;字符区间a-z,如:[a-z0-9\.\-]小写字母、数字、句号和减号,[.\n]任何字符包括换行符
\     将下一字符标记为特殊字符或字面值,必须的:^ $ ( ) [ ] { } . ? + * |
\Q多个特殊字符\E

\d  与一个数字字符匹配,等价[0-9];\D 与非数字的字符匹配
\w  匹配任何一个单词(即几个连续的\w)字符,包括字母、数字、下划线、汉字,等价[A-Za-z0-9_];\W 匹配任何非单词字符
\s  匹配任何一个白字符,包括空格、制表符(Tab)、换行符、中文全角空格、分页符等,等价[\f\n\r\t\v];\S 匹配任何非空白字符
\n  匹配一个换行符
\r  匹配一个回车字符
\f  匹配一个分页符,等价\x09和\cI
\t  匹配一个制表符
\v  匹配一个垂直制表符,等价\x0b和\cK
\cx 匹配一个由x指明的控制字符,x值须为一个字母,否则c将被视为原义的c字符。如:\cM 匹配回车符

\n     n是一个1-3位数字八进制SCII码换码值,超过256只有前两个字符被视为表达式的一部分
\xXX   X表示一个十六进制数。如:"\x20表示空格
\uXXXX 任何字符可以使用 "\u" 再加上其编号的4位十六进制数表示
====替换操作===========
$1 ~ $999 代表某个捕获组捕获到的内容。如编号大于表达式中的最大捕获组编号则减少数字个数,把剩余的数字看作字符串常量
${name}   代表指定命名分组捕获到的内容
$$        表示一个$符号
$&        代表每次匹配到内容
$`        代表原字符串中,匹配到的内容之前的字符串
$'        代表原字符串中,匹配到的内容之后的字符串
$+        代表所有“有捕获”的分组中,编号最大的那个分组
$_        代表被替换的整个字符串。"_" 是下划线

  评论这张
 
阅读(5687)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017