我有一些文字,其中一些单词是“真实的”单词,而其他单词是将被某些文本替换的面具,并且被“%”包围。这是一个例子:
亲爱的%姓名%!你是%Age%y.o。
我应该使用什么正则表达式来获取“真实”单词,而不使用lookbehind,因为它们不存在于JavaScript中?
UPD:我想说“你好”,“亲爱的”,“你是”,“y.o。”。答案 0 :(得分:1)
如果我能正确理解你的问题,这可能有用。
我会反过来说,而不是找到真正的单词,我会删除“假单词”。
s = "Hello dear %Name%! You're %Age% y.o."
realWords = s.replace(/%.*?%/g, "").split(/ +/)
答案 1 :(得分:1)
您可以使用split
获取字词并在之后过滤字词:
var str = "Hello dear %Name%! You're %Age% y.o.", words;
words = str.split(/\s+/).filter(function(val) {
return !/%[^%]*%/.test(val);
});
答案 2 :(得分:0)
要进行搜索并使用正则表达式替换,请使用字符串的replace()方法:
myString.replace(/replaceme/g, "replacement")
使用/ g修饰符可确保替换所有出现的“replaceme”。第二个参数是带有替换文本的普通字符串。
答案 3 :(得分:0)
您可以使用%[^%] *?%匹配%Something%匹配,但是如何存储所有单个掩码值,如姓名和年龄?
答案 4 :(得分:0)
在Javascript中使用正则表达式,并根据匹配的正则表达式拆分字符串。
//javascript
var s = "Hello dear %Name%! You're %Age% y.o.";
words = s.split(/%[^%]*?%/i);
//To get all the words
for (var i = 0; i < words.length; i++) {
}