我有一些文字,其中某些單詞是「真實」單詞,而其他文字是將用一些文本替換的掩碼,並用「%」 。下面是例子:用於解析JavaScript中「真實」單詞的正則表達式
你好親愛的%姓名!你是%Age%y.o.
應該使用什麼正則表達式來獲得「真實」的單詞,而不使用後視,因爲它們不存在於JavaScript中?
UPD:我想要得到單詞「你好」,「親愛的」,「你是」,「y.o.」。
我有一些文字,其中某些單詞是「真實」單詞,而其他文字是將用一些文本替換的掩碼,並用「%」 。下面是例子:用於解析JavaScript中「真實」單詞的正則表達式
你好親愛的%姓名!你是%Age%y.o.
應該使用什麼正則表達式來獲得「真實」的單詞,而不使用後視,因爲它們不存在於JavaScript中?
UPD:我想要得到單詞「你好」,「親愛的」,「你是」,「y.o.」。
如果我已經正確理解你的問題,這可能工作。
我會繞過它,而不是找到真正的話我會刪除「假詞」。
s = "Hello dear %Name%! You're %Age% y.o."
realWords = s.replace(/%.*?%/g, "").split(/ +/)
你可以使用split
得到的話,之後過濾詞:
var str = "Hello dear %Name%! You're %Age% y.o.", words;
words = str.split(/\s+/).filter(function(val) {
return !/%[^%]*%/.test(val);
});
做搜索,並用正則表達式替換,使用字符串的replace()方法:
myString.replace(/replaceme/g, "replacement")
使用/ g修飾符可確保替換所有出現的「replaceme」。第二個參數是具有替換文本的普通字符串。
您可以使用%[^%] *?%來匹配%Something%匹配項,但您如何存儲像名稱和年齡這樣的單個掩碼值?
該文本由用戶提供,並帶有一些掩碼。信息是用俄語發佈的,所以我最終想要實現的是音譯所有的單詞,除了掩碼的單詞外。然後將音譯後的消息傳輸到服務器,在那裏解析,並將掩碼替換爲真實值。 – HiveHicks
在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++) {
}
只要你不試圖解析HTML ... –
你想達到什麼目的? – Gumbo
所以...從你想要的例子字符串中「你好親愛的你是y.o」作爲結果嗎? – Erik