【发布时间】:2019-11-20 15:07:13
【问题描述】:
所以我想使用正则表达式来捕获 JavaScript 中两个特殊字符之间的子字符串。
假设我有字符串"$Hello$, my name is $John$",我希望.match 返回[Hello, John] 的数组。
*另外,我不想捕捉两场比赛之间的比赛。所以我不想捕获 $,我的名字是 $,因为它在技术上介于两个 '$' 之间。
我使用的正则表达式是
var test = str.match(/(?<=\$)(.*)(?=\$)/);
这有效,但每个条目重复两次。所以它有
[你好,你好,约翰,约翰]。
我也用过var test = str.match(/(?<=\$)[^\$]+?(?=\$)/g)
但这会返回每场比赛之间的所有内容(我上面列出的示例 $,我的名字是 $。)
我该如何解决这个问题?
【问题讨论】:
-
请注意,lookbehinds 是 not yet well-supported。
-
"$Hello$, my name is $John$".split("$").filter((el, i ) => i % 2)输出["Hello", "John"]
标签: javascript regex reactjs