个人笔记,不保证正确。
待完善。。
日常工作中能接触到的正则,分为两大派别,其中类 Unix 系统中常用的正则,属于 POSIX “派”(较弱),而各编程语言标准库中的 Re,基本都是 PCRE “派”。(详见 正则表达式“派别”简述)
可虽然说各编程语言基本都属于 PCRE 派,实现上却还是各有特点,一个正则想在各语言间移植,也往往需要一番修改。
今天学 Elixir,就在正则上遇到了问题,百度一番,想想索性就把这些差别总结一遍,防止下次又掉坑里。(包括 Python、Java、Elixir、文本编辑器的正则,有时间把 SQL 的正则也写写。。)
find all。$1 $2 等来表示前面捕获的数字分组。~r/your regex/s,s 表示 dot matches all。待续
. 默认是匹配除非换行外的任何字符。如果需要包括换行,需要开启dot matchs all 选项,或者使用大小写匹配符结合(如 [\s\S] [\w\W] 之类)* + ? {m,n}),默认都是贪婪匹配,如果需要懒惰匹配,要在后面多加个?,变成 *? +? {m,n}?重复限定符后多加一个?,表示匹配尽可能少的字符。比如.*要改成.*?Regex - an online tool to learn, build, & test Regular Expressions
原文:https://www.cnblogs.com/kirito-c/p/9310908.html