小正则表达式有帮助吗?我无法说明为什么这不匹配。我能够找到具有类似模式的[
]
所包含的内容......
我想匹配,并且可以选择替换以s
开头的所有字符串以及触及它们的所有数字,直到被0-9之外的任何内容中断。
我确实试图解决这个问题:)
以为我匹配了:
/\ s
(逃离空间)\d+?
/g
虽然缺少一些东西。小提琴和代码:
http://jsfiddle.net/SimpleAsCouldBe/eLbcbr7z/1/
stringBlob = "because sally said so s324 * s42"
// Should replace `s324` and `s42`
console.log('original: ', stringBlob);
replaced = stringBlob.replace(
/\ s(\d+?)/g,
// also tried:
// /\ s\d+/g,
// /\ s(.+?) /g,
// /\ s(.+) /g,
function(tokenWithDelimeter, token) {
console.log(token);
return "REDACTED";
}
);
console.log('replaced: ', replaced);
答案 0 :(得分:1)
而不是:/\ s(\d+?)/g
您可以使用:
/\bs\d+\b/g
即。被字界包围。
您的正则表达式\ s\d+?
将匹配一个空格,后跟字母s
,然后是一个或多个数字(非贪婪)。这只会在{1}}而不是s3
中生成s324
。