正则表达式是一个十分有用的字符串匹配模式。在练习正则表达式的过程中我发现了一个有趣的问题。
一个形如
.*?(?=\\()
的正则表达式,在js上执行会报错,但是java上不会。 后来发现,这跟js和java对于\的处理方案不同有关。
这个regex表达的意思可以这样解析,.*代表匹配一切字符,?代表匹配0-1个,(代表遇见'('字符进行匹配,如果遇到括号闭合就结束匹配,策略是懒惰。
?=和\暂时没有弄明白