个人笔记,不保证正确。
待完善。。
日常工作中能接触到的正则,分为两大派别,其中类 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