CNode

这个正则是什么意思?

问答
Gguotie发布于11 年前最后回复11 年前10 回复5068 浏览0 收藏

代码:

val = val.replace(/(^|[^\[])\^/g, '$1');
查看回复

回复 (10)

A
alsotang#1·11 年前
引用 DevinXian@alsotang /(^|[^[])^/g 这玩意儿能匹配啥?

@DevinXian 啥都不行。^用得太风骚。

G
guotie#2·11 年前

例子 /^ *[([^]]+)]: *<?([^\s>]+)>?(?: +"([")])? *(?:\n+|$)/.source.replace(/(^|[^[])^/g, '$1')

结果:

" *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)"
G
guotie#3·11 年前

哦,好像转义了反斜杠,应该是这样的:

 val = val.replace(/(^|[^\[])\^/g, '$1');
G
guotie#4·11 年前

匹配以^开头的^, 或者任何非[后的^ 其中

  [^\[]
  

让这个正则可以跨越多行匹配。

D
DevinXian#5·11 年前
引用 guotie匹配以^开头的^, 或者任何非[后的^ 其中 [^\[] 让这个正则可以跨越多行匹配。

@guotie 只要没有定位,随便跨行。这个正则用途挺特殊...

J
JesseZs#6·11 年前

去掉前面不为[的^

A
alsotang#7·11 年前

在我看来是无意义的。

G
guotie#8·11 年前

function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) return new RegExp(regex, opt); val = val.source || val; val = val.replace(/(^|[^[])^/g, '$1'); regex = regex.replace(name, val); return self; }; }

A
asfman#9·11 年前

无意义

D
DevinXian#10·11 年前
引用 alsotang在我看来是无意义的。

@alsotang

/(^|[^[])^/g 

这玩意儿能匹配啥?

参与回复
登录后即可参与回复。登录