Javascript正则表达式测试
我应该做什么测试来获取模式“$”+someSingleCharacter+“$”的子字符串的所有实例 例如,在以下字符串中:Javascript正则表达式测试,javascript,regex,Javascript,Regex,我应该做什么测试来获取模式“$”+someSingleCharacter+“$”的子字符串的所有实例 例如,在以下字符串中: “我们需要每$1$天吃$0$西瓜”您想要使用的正则表达式是\$(.)\$ 它在两个$符号中查找一个单个字符()。您的正则表达式应该是: /\$.\$/g 这里是除新行以外的任何字符。如果要匹配新行字符,请使用 /\$(?:.|\n)\$/g 请注意,它也将匹配$$。如果你想避免它,使用 /\$[^\$]\$/g 然而,尽管你没有问,我很确定你想要这样的东西: fun
“我们需要每$1$天吃$0$西瓜”您想要使用的正则表达式是
\$(.)\$
它在两个$
符号中查找一个单个字符(
)。您的正则表达式应该是:
/\$.\$/g
这里
是除新行以外的任何字符。如果要匹配新行字符,请使用
/\$(?:.|\n)\$/g
请注意,它也将匹配$$
。如果你想避免它,使用
/\$[^\$]\$/g
然而,尽管你没有问,我很确定你想要这样的东西:
function replace(str, ...values){
return str.replace(/\$\d+\$/g, () => values.shift());
}
var exampleStr = 'We need to eat $0$ melons per $1$ days.';
var replaced = replace(exampleStr, 'one', 'two');
console.log(replaced);
错。正如OP所说,他只想在美元符号之间匹配一个字符。。。。所以更确切地说是
“\$(“+0+”)\$”
和/或“\$(“+1+”)\$”
。。。但在我看来,似乎OPs的实际任务无论如何都不需要正则表达式。虽然所有这些都可以作为正则表达式使用,但这仍然不是OP想要的-他想要一个简单字符串模式可以使用的正则表达式,即替换(“$”+0+“$”,“123”)
@Filburt。我认为你错了。如果你看他的例子,他有两种不同的模式(也许他在某个字符串中有n种不同的模式),所以他必须使用正则表达式。另外,将字符串作为第一个参数传递给string.prototype.replace
函数将导致它只替换第一个出现的模式。当然,但是他为什么要用相同的值替换两个不同的模式呢?在任何情况下都是典型的XY问题,除非OP给出了他示例所需的输出。@Filburt。他从来没有说过他想替换这些事件。但无论如何,我在我的答案中添加了我认为OP想要的内容。不需要在字符集中转义美元符号。你确定需要正则表达式吗?如果要替换,可以使用简单的字符串模式。变量someSingleCharacter
和示例字符串所需的输出匹配是什么?看来你的问题在不知道的情况下是无法回答的。