定位线程日志
素材
结束符定位原因
[\s\S]* 与 .*(\n.*)* 在适配到的最后个结束符是一样的
[\s\S]*? 与 .*(\n.*)*? 在适配到的最后个结束符是不一样的
正则可视化工具
(?<=column=").*?(?=")
https://www.debuggex.com/
分支主题
pythen 不支持肯定预查
https://regexper.com/
不支持肯定预查
https://jex.im/regulex
http://rick.measham.id.au/paste/explain.pl
(?:pattern) 定位,不选择
(pattern)匹配pattern并获取这一匹配
(?:pattern)匹配pattern但不获取匹配结果
“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式
(?=pattern)正向肯定预查
“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”
不能匹配“Windows3.1”中的“Windows”
(?!pattern)正向否定预查
“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”
不能匹配“Windows2000”中的“Windows”
(?<=pattern)反向肯定预查
“(?<=[95|98|NT|2000])Windows”能匹配“2000Windows”中的“Windows”
不能匹配“3.1Windows”中的“Windows”
(?<!pattern)反向否定预查
“(?<![95|98|NT|2000])Windows”能匹配“3.1Windows”中的“Windows”
不能匹配“2000Windows”中的“Windows”
问题:反向肯定无法使用正则匹配符号
全字匹配-正常
正则匹配-失效
笔记整理
前面为换行符,且以换行符开头(^)
后面存在有效字符
定位中间空位置 => 替换内容(- )
(?<=^
)(?=.)
源
目标
作用(markdown)