替换从某个字符开始,一直到行尾:
行尾用 $ 表示:
abc.*$
首字母大写,替换成小写
例如
BaseResultMap 替换成:
baseResultMap
查找:^([A-Z])
替换:\L\1
(如果是小写替换成大写,则用\U),如果替换多个字母,则末尾加/E,例如 \L\1\E
如何匹配所有字符,包括换行符(.*不能匹配换行符)
有如下文本:
2018年07月12日 10:05,"昨日: 张三:1. 完成exploitdb漏洞库爬取及数据展示。2. 沟通讨论漏扫相关计划。3. 漏扫虚拟机模版已给正配,待上传生产配置完成后获取两码。4. 上线安全评估及安全测试。5. mac10.12.x连接vpn问题(未解决) 李四:1、日志数据牵移(开放平台、中台);2、zabbix 11网段监控配置;3、灾备测试讨论;4、上线评审;5、大数据网络策略开通;6、风控紧急上线; 王小二:1、数据库数据离线备份;2、账付通以及聚合支付SQL评审; 邹勇勇:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。 刘某某:1、手机银行系统上线;2、中台fastdfs改造配合;3、双活测试方案讨论; 杨五: 1、redmine整理流程配置,DEMO创建完成100%,并且完成宣讲。2、参加上线评审。4、提供自动装机系统的IPPOOL的代码。 2018年07月11日 10:01,"昨日: 张三:1. 完成exploitdb漏洞库爬取及数据展示。2. 沟通讨论漏扫相关计划。3. 漏扫虚拟机模版已给正配,待上传生产配置完成后获取两码。4. 上线安全评估及安全测试。5. mac10.12.x连接vpn问题(未解决) 李四:1、日志数据牵移(开放平台、中台);2、zabbix 11网段监控配置;3、灾备测试讨论;4、上线评审;5、大数据网络策略开通;6、风控紧急上线; 王小二:1、数据库数据离线备份;2、账付通以及聚合支付SQL评审; 邹勇勇:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。 杨某:1、使用tomcat用户在预发布环境进行发布操作 2、前端联调评审功能 3、应用日志查看前端功能开发 4、主机环境检查前端功能开发。
怎么替换成如下内容:
2018年07月12日 10:05,"昨日:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。 2018年07月11日 10:01,"昨日:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。
知识点1:用[\d\D] 匹配所有字符,或者是[\s\S]。
知识点2:使用非贪婪匹配模式(?模式)。
使用答案如下:
昨日:[\d\D]*?邹勇勇
如果不加?号,则将会匹配到最后一个邹勇勇。
替换 非xx开头、结尾 的内容、匹配不包含某内容的行
有如下文本:
2018年07月12日 10:05,"昨日: 张三:1. 完成exploitdb漏洞库爬取及数据展示。2. 沟通讨论漏扫相关计划。3. 漏扫虚拟机模版已给正配,待上传生产配置完成后获取两码。4. 上线安全评估及安全测试。5. mac10.12.x连接vpn问题(未解决) 李四:1、日志数据牵移(开放平台、中台);2、zabbix 11网段监控配置;3、灾备测试讨论;4、上线评审;5、大数据网络策略开通;6、风控紧急上线; 王小二:1、数据库数据离线备份;2、账付通以及聚合支付SQL评审; 邹勇勇:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。 刘某某:1、手机银行系统上线;2、中台fastdfs改造配合;3、双活测试方案讨论; 秦某某:1,电信线路开80,443端口资料盖章和申请。2,博云POC安装交流。 3,参与新的软件发布流程会议。 杨五: 1、redmine整理流程配置,DEMO创建完成100%,并且完成宣讲。2、参加上线评审。4、提供自动装机系统的IPPOOL的代码。 今日: 刘某某:1. 态势感知地图展示开发。2. 漏洞扫描相关工作准备。3. 继续解决mac10.12.x连接vpn问题。 张三:1、灾备项目跟进(模板机准备支撑);2、iptables转F5预发策略配置;3、上线准备及上线支撑; 李四:1、聚合支付SQL优化;2、生产环境数据库虚拟机在线迁移;3、数据库上线相关工作; 邹勇勇:1.熟悉ElementUI用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题。 王小二:1、docker 服务器网络配置还原;2、安全扫描软件安装配置;3、备份网卡添加测试;4、灾备模板机创建配置。 秦某某:1,电信线路开80,443端口跟踪。2,博云POC安装。 3,现网内核优化参数分析与测试。 曾某:1.上半年主机漏扫准备工作,申请天镜授权码。2.漏洞监控平台前端优化,增加威胁情报子菜单。3.分析SeMF平台路由与视图关系源码。 袁某:1. 自动化装机系统主机,虚拟机信息,folder,数据中心,资源池等相关信息页开发 杨某:1、部署中心功能优化,自测,验证预发布环境应用 2、rsync + Inotify 测试备份"
使用正则表达式,剥离出邹勇勇的工作内容,将其替换成如下内容:
2018年07月12日 10:05 昨日:1.熟悉TypeScript及vue-router用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题;4.协助开放平台沙箱环境apollo部署;5.参加各种会议。 今日:1.熟悉ElementUI用法,搭建前端开发框架;2.跟踪和支持FastDFS的改造,协助测试;3.协助各战队开发框架的使用,并解决问题。
使用如下正则表达式,替换其内容:
^(?!(.*昨日)|(邹勇勇)).*$
上面正则表达式的作用是,匹配 非 (.*昨日)和 (邹勇勇) 开头的行。
使用说明如下:
匹配非string开头的行:^(?!string).* 匹配不包括 "aaa" 的行:^(?!.*aaa).* 或者 ^(?!.*aaa).+
这个语法是 正则表达式中的 “断言”,但是比较难搞懂,
参考资料为:
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
我说下我的理解,这个表达式代表的是位置,所以前面或后面要跟一个匹配标识。
例如:^(?!string).*$,含义是 匹配 ^(开头) 后面不是 string的行。
那么:^.*(?<!string)$,含义就是 匹配 $(结尾) 前面不是 string的行。
常用语句:匹配 非 .txt 结尾的行
例如
zzz aaa.txt zzz aaa.xxx zzz aaa.txt.xxx zzz aaa.txtwww zzz aaa..txt zzz aaa.aaa.tx
匹配除了 第一行、第五行,之外的所有行,
语句如下:
^.*(?<!\.txt)$
另外,还有一个比较难的“非”匹配:
匹配所有 某某后面的非某某 的行。
例如下面
http://seasar2.org/shop/test/aa
http://seasar2.org/shop/intro/aa
http://seasar2.org/cart/intro/aa
http://seasar2.org/shop/demo/aa
要求匹配出 shop/下面的,且非intro的url。
答案如下:
.*shop/(?:(?!intro).)*$
说明:
首先看 这个结构:
(?:(?!单词).)*
可以把它分解成下面两个结构
(?!单词) (?:REG.)*
这个 “?:” 是分组语法,语法说明如下:
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
看不懂,不知所云。这个REG后面跟一个“.”是什么意思,而且(?:)后面跟一个"*"又是什么意思,搞不懂。
据说是 (?:REG.)* 的作用是 循环0次,
扩展,不仅可以排除intro,还可以排除多个,例如排除 intro 和 point,如下:
.*shop/(?:(?!(intro|point)).)*$
实际案例:
LP配置,当网页请求中非/shop下面的cart,order,intro,point,customer的时候,自动跳转到seasar2.org网站。
<!-- LP Area --> <rule> <name>LP Area</name> <condition name="user-agent">Mozilla</condition> <from >^/shop/(?:(?!(cart|order|intro|point|customer)).)*$</from> <to type="redirect" last="true">http://seasar2.org/shop/$1</to> </rule>
解决 百度文库 无法复制粘贴的问题
方法一,只复制某段文字:
选中文字,会提示“翻译”,然后点击翻译即可提取出这段文字。
方法二,全文复制:
找到这个 html标签:<div class="reader-container xreader" id="reader-container-inner-1">
然后把这个标签内的所有html复制出来,放到支持正则表达式查找替换的文本编辑器中。
然后使用下面几个正则表达式 替换掉 html标签,最后就得到纯文本的内容。
<div .*?>和<p .*?>
</div>和</p>