在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
In javascript, I'm having trouble figuring out how to make a regex replace only the capture and not the match
以下函数用于从文本中删除随机冠词(词性)。最终,百分比将由用户调整,正则表达式更复杂,可以更好地捕捉单词边界,等等。它正在替换(大约50/50),但也在压缩空格(匹配但未捕获)。我觉得我在这里真的很笨,但我想不出正确的语法。。。有人能帮忙吗?
function posArticles(t) {
var text = t;
var re = / (a|the|an) /g;
var rArray;
text = text.replace(re, function(_, m) {
if (Math.floor(Math.random()*101) < 50) return '';
else return m;
});
return text;
}
我意识到这与anon函数的位置/可选参数有关,但我不知道哪个是匹配的,哪个是捕获的,等等。
有很多方法可以做到这一点,但我认为最好使用'b
&dash;"单词边界"的零宽度匹配。这保证了你得到的是"the"而不是"there"或其他什么,但与它周围的空格不匹配。
因此,使用re = /'b([Aa]n?|[Tt]he)'b/;
我意识到这与位置/可选参数有关到anon函数,但我不知道哪一个匹配这就是捕获等等。
传递给回调函数的第一个参数是完全匹配(即:_ = ' the '
)。下一个参数是您捕获的组(m = 'the'
)。回调函数正在替换整个匹配,所以如果在表达式中包含空格,它们也将被替换。
if (Math.floor(Math.random()*101) < 50) return ' ';
返回一个空格而不是空字符串:)
相关文章:
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- 要替换的Javascript Regex无法按预期工作
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- Regex将+46替换为0 JavaScript
- 可以't删除“;C: fakepath "使用javascript替换和regex
- Javascript Regex替换HTML标记
- 用数组(javascript)中的值替换regex捕获
- 我需要javascript替换regex方面的帮助
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- 用空格替换regex字符
- 用相同的字符数替换regex
- Javascript替换regex剪切结果
- Javascript字符串替换-RegEx用于非字母数字字符,如Backslash、Greater Than等
- Javascript用随机数替换Regex-字符串
- 如何防止段落中的行被删除(Javascript替换Regex)
- javascript字符串替换regex
- 用Jquery(或直接JS)查找和替换Regex
- Google Apps Script/Javascript搜索和替换regex不工作
- JavaScript替换regex的每一个出现,但最后一个
- 替换regex中的img元素src属性