鍍金池/ 問(wèn)答/Java  HTML/ 如何用js正則,過(guò)濾掉“德”字輩,非“郭”性人名?

如何用js正則,過(guò)濾掉“德”字輩,非“郭”性人名?

各位老師好,最近在學(xué)習(xí)正則表達(dá)式,
目前要匹配“德”字輩,非“郭”性人名,我是這樣做的:

"郭德剛、郭德鐵、刁德一、劉德華,A德字母, 1德數(shù)字,=德標(biāo)點(diǎn)".match(/[^郭]德[\u4e00-\u9fa5]{1,2}/g);
//結(jié)果: ?["刁德一", "劉德華", "A德字母", "1德數(shù)字", "=德標(biāo)點(diǎn)"]
//思考:“郭”性過(guò)濾了,但多了很多諸如"A德字母"之類(lèi)的東西
"郭德剛、郭德鐵、刁德一、劉德華,A德字母, 1德數(shù)字,=德標(biāo)點(diǎn)".match(/[^郭a-z0-9]德[\u4e00-\u9fa5]{1,2}/ig);
//結(jié)果["刁德一", "劉德華", "=德標(biāo)點(diǎn)"]
//思考:有些進(jìn)步,但"=德標(biāo)點(diǎn)"沒(méi)過(guò)濾掉
其實(shí)說(shuō)到底,這問(wèn)題就是請(qǐng)教,如何“匹配一個(gè)非"郭"的漢字”
/[非郭的漢字]德[u4e00-u9fa5]{1,2}/ig
謝謝各位老師:

學(xué)會(huì)了這個(gè),將來(lái)就能匹配非t開(kāi)頭的英文單詞,非4開(kāi)頭的數(shù)字等。
如果這個(gè)實(shí)在不行,估計(jì)實(shí)際中就得二次過(guò)濾了。
謝謝老司機(jī)指南,謝謝你的到來(lái)。
-
-

回答
編輯回答
夢(mèng)若殤

”郭“對(duì)應(yīng) \u90ed。剩下的不用多說(shuō)了吧。

另外,非t開(kāi)頭的英文單詞,非4開(kāi)頭的數(shù)字比匹配漢字簡(jiǎn)單,不用會(huì)郭才能學(xué)會(huì)。

2017年2月12日 07:22
編輯回答
鐧簞噯

你可以找出郭的ASCII編碼,然后將[u4e00-u9fa5]從編碼處分開(kāi),再用選擇運(yùn)算連接起來(lái):
let re = "郭德剛、郭德鐵、刁德一、劉德華,A德字, 1德數(shù)字,=德標(biāo)點(diǎn)".match(/([u4E00-u90ec]|[u90ee-u9fa5])德[u4e00-u9fa5]{1,2}/g);
console.log(re)

2017年10月14日 23:56
編輯回答
黑與白
var str = "郭德剛、郭德鐵、刁德一、劉德華,A德字母, 1德數(shù)字,=德標(biāo)點(diǎn)";
var result = str.match(/([\u4e00-\u90ec]|[\u90ee-\u9fa5])德[\u4e00-\u9fa5]{1,2}/g);
console.log(result);
2017年6月7日 06:14
編輯回答
凝雅
var str="郭德剛、郭德鐵、刁德一、劉德華,A德字母, 1德數(shù)字,=德標(biāo)點(diǎn)";
    var reg=/([\u4e00-\u9fa5])(?<!郭)德[\u4e00-\u9fa5]{1,2}/g;
    console.log(str.match(reg));
2017年5月13日 08:54