因为本人有时需要批量替换改写文章,简单的关键词替换不能满足需求,不得不学习正则表达式,作为一个新手,这里记录一些正则规则和遇到的问题。
1.1.第一批正则学习
[]匹配列表之中的任何单个字符.例如,"[ab]"匹配"a"或者“b","[0-9]"匹配任意数字
[^]匹配列表之外的任何单个字符.例如,"[^ab]"匹配“a"和“b"以外的字符,"[^0-9]"匹配任意非数字字符
[abxy0-6]匹配abxy中任意一个字母或0-6任意一个数字
[^abxy0-6] 匹配除了abxy和0-6的任意一个字符
^其右边的表达式被匹配在一行的开始.例如“^A”仅仅匹配以“A”开头的行
()影响表达式匹配的顺序,并且用作表达式的分组标记
\转义字符.如果你要使用""本身,则应该使用""
.匹配任意一个字符
\t 匹配tab
\n new line,一般是用enter回车
\r return 换行在linux,光标回到前面
\w word,匹配任意一个字母(加上”")
\W 匹配任意一个非字母
\s space,匹配表示一个空白字符(空格,tab,换页符等)
\S 匹配非空格
\d digital,匹配任意一个数字
\D 匹配任意一个非数字
(n,m) 匹配n到m次
1.2 第二批正则学习
^:表示匹配字符串的开头。
$: 表示匹配字符串的结尾,
.:表示匹配任意一个字符。
*:表示匹配前面的字符出现0次或多次。
+:表示匹配前面的字符出现1次或多次
?:表示匹配前面的字符出现0次或1次。
[]:表示匹配方括号内任意一个字符。
[^]:表示不匹配方括号内的任何一个字符。
():表示分组,可以将一组字符看作一个整体进行匹配。
|:表示或者,匹配符号左边或者右边的任意一个表达式。
() 分组捕获(子表达式)的开始和结束。可以捕获子表达式以供以后使用。
[]中括号表达式的开始。
中括号表达式是在方括号内包含一个或多个字符构成的列表的表达式。普通字符在中括号内表示本身,大多数特殊字符在中括号表达式内出现时失去它们的意义。除了转义字符'\', (要包含'\', 需要使用'\') 如: 正则表达式 No [1234] 匹配 No 1, No 2, No 3 和 No4. 如果想在中括号中使用一个范围作为列表来匹配字符,可以用连字符 '-' 将范围中的开始字符和结束字符分开。单个字符的字符值确定范围内的相对顺序。如: 正则表达式 No [1-4] = No [1234],中括号表达式还可进行组合, 如 [A-Za-z0-9] 匹配A-Z, a-z, 0-9 的字符
注意 1. 开始值的Unicode值必须在结束值Unicode值的前面。
注意 2. [\-]匹配连字符'-', 放在中括号列表的开始或结尾也可起到同样的效果, 如 [-c-f] 匹配 c 至 f 的字符和连字符
{ } 标记限定符表达式的开始。
(数量)限定字符
例子1:去掉空行,在“查找”栏中输入正则表达式:^\s*\n 还有另外一种 ^[\t]*\n 查找的是tab似乎不正确,应该查找space,注意space和tab的区别,两种空格写法共存着。空行是怎么产生的?回车产生,一般用\n 换行符查找,^\s表示查找行首空格,^\s*\n表示有或者无空格回车
例子2:删除行尾空格,[\s]+$ 这个中括号应该没意义,改为\s+$,如果两种都要匹配,不如用这个[\s\t]+$ ,据说还可以用这\s*$(似乎用*不对,确定不对用+)
查 \s 的时候是包括TAB空格的,但查 \t 的时候却不能包括半角空格,其实这两个都非常有用。
例子3:查询行首键字开头的,改为一键,正则:^键替换为一键,开始想复杂了。
关于换行资料:文件中的回车换行符号:
linux,unix: \n
windows : \r\n (CR+LF表示回车加换行)
Mac OS : \r
新学习点:
() 括号分组,用于后向引用
\1 \2 后向引用先前括号分组的表达式
\0将引用上次的匹配结果
例子3学习点
*匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。?匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。.*是指任何字符0个或多个,.?是指任何字符0个或1个。
?表示非贪婪模式,即为匹配最近字符 如果不加?就是贪婪模式a.*bc 可以匹配 abcbcbc 。
.* 具有贪婪的性质,首先匹配到不能匹配为止,根据后面的正则表达式,会进行回溯。.*?则相反,一个匹配以后,就往下进行,所以不会进行回溯,具有最小匹配的性质。
.*? 表示匹配任意字符到下一个符合条件的字符
例子:正则表达式a.*?bbb 可以匹配 acbbb abbbbb accccccccbbb
版权声明:本文由贝联科技发布,如需转载请注明出处,如需分享可点击上方生成海报按钮。
因为朋友的华为云主机出了问题,我需要给重新安装系统和做好一个企业网站。本人也是摸索学习,这里总结下经验,附宝塔官方安装教程步骤一:华为云重装系统打开网址 https://www.huaweicloud.com 登录进入弹...
本人电脑以前是win10系统21H1版本,已经手动关闭了系统自带所有广告提示,今天电脑自动升级到了22H2版本,居然在使用本地搜索功能时出现一个热门搜索栏。里面显示乱七八糟的推荐内容,一旦点击,就会跳转到Edge浏览器中Bing搜索结果页面...
因为自己运营的某个网站后台编辑器使用的是百度UEditor,用这个编辑器自带功能给文章可以加四个自带标题样式,但这个标题样式令人难以满意,故决定自己动手修改。从网上搜索教程,发现可能涉及到两个文件的修改,一个是该编辑器目录下editor/u...
许多做网站的同学对在国内合法开办网站需要哪些证件可能不是很清楚,下面做一个总结:ICP许可证:主要用作于信息发布及经营性收付费功能的网站;EDI许可证:用作于电商类网站,具有第三方商家入驻的功能;呼叫中心业务许可证:用作于坐席外包,电话外呼...
PbootCMS是一个很不错的PHP建站系统,但后台一些明显的PbootCMS字样看着不舒服,本人在此分享下自己和其他网友总结出来的经验。特别说明,本人只是修改一些明显的碍眼字样,请大家一起尊重PbootCMS 知识产权。(一)后台登录界面...
因为本人需要和长安银行每季度进行网银对账,每每碰到Win10系统不好登录长安银行网银网站问题,在此分享解决办法。不得不说这些银行真的落伍,什么年代了还让客户必须用IE浏览器访问你的网站才可以登录。微软公司启用了谷歌内核的Edge浏览器,不再...