用于解析JavaScript中“真实”单词的正则表达式

时间:2010-02-15 17:29:56

标签: javascript regex

我有一些文字,其中一些单词是“真实的”单词,而其他单词是将被某些文本替换的面具,并且被“%”包围。这是一个例子:

亲爱的%姓名%!你是%Age%y.o。

我应该使用什么正则表达式来获取“真实”单词,而不使用lookbehind,因为它们不存在于JavaScript中?

UPD:我想说“你好”,“亲爱的”,“你是”,“y.o。”。

5 个答案:

答案 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++) {

}