gpt4 book ai didi

匹配 "*"的 JavaScript 正则表达式,除非前面有反斜杠

转载 作者:行者123 更新时间:2023-11-30 06:59:12 25 4
gpt4 key购买 nike

似乎无法得到这个——我正在尝试想出一个正则表达式,如果它在任何位置包含“*”,它就会匹配一个字符串,但如果星号前面有一个反斜杠,则不会。例如:

abcd: false
*abcd: true
abcde*fghi*: true
abc\*defg: false
\*abcdefg: false

我认为我的做法是正确的,但它不起作用:

/[^\\]\*/

谢谢!

最佳答案

这并不像听起来那么简单。

如果反斜杠本身被反斜杠怎么办?

 \\* should be true, while
\* this should be false

事实上,这个问题确实是一个递归问题。但是递归、回溯和所有这些复杂性都可以通过考虑反斜杠本身来避免,后跟星号。

/(?:^|[^\\])((\\\\)*\*)/.test(string);
/* returns true for unescaped asterisks */

例子:

abcd false
*abcd true
\*abcd false
\\*abcd true
\\\*abcd false
\\\\*abcd true

关于匹配 "*"的 JavaScript 正则表达式,除非前面有反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com