kt-*_*low 5 javascript regex reactjs
因此,我想使用正则表达式捕获JavaScript中两个特殊字符之间的子字符串。说我有字符串"$Hello$, my name is $John$",我希望.match返回的数组[Hello, John]。*此外,我不想捕获两个匹配项之间的匹配项。因此,我不想捕获$,我的名字是$,因为从技术上讲,它在两个$之间。
我使用的正则表达式是
var test = str.match(/(?<=\$)(.*)(?=\$)/);
Run Code Online (Sandbox Code Playgroud)
哪个可行,但每个条目重复两次。[Hello,Hello,John,John]。我还使用了var test = str.match(/(?<=\$)[^\$]+?(?=\$)/g)
But,但是它返回了每个匹配项之间的所有内容(我在$上方列出的示例,我的名字是$。)
我怎样才能解决这个问题?
您可以匹配第一个和第二个美元符号,并使用捕获组来捕获介于两者之间的字符,使用否定字符类匹配除美元符号之外的任何字符。
\$([^$]+)\$
Run Code Online (Sandbox Code Playgroud)
您可以使用exec而不是使用 match 。例如:
\$([^$]+)\$
Run Code Online (Sandbox Code Playgroud)