1

me ang an me nang kan di menang kanこの文から接辞を削除したい場合、どこから始めればよいでしょうか。

affix_list = [
'me-an',
'me-kan,
'di-kan
]

string = 'meangan menangkan dimenangkan'

したがって、出力されます

output = [
'ang',
'nang'
'menang'
]
4

2 に答える 2

2

これらの置換には正規表現を使用することをお勧めします。あなたから始めてaffix_list、これはうまくいくはずです:

output = affix_list.reduce(function(str, affix) {
    var parts = affix.split("-");
    var regex = new RegExp("\\b"+parts[0]+"(\\S+)"+parts[1]+"\\b", "g");
    return str.replace(regex, "$1")
}, string).split(" ");

esregexは次のようになります。

/\bme(\S+)an\b/g
/\bme(\S+)kan\b/g
/\bdi(\S+)kan\b/g

me-kanただし、もちろんbeforeを置換する必要があることに注意してくださいme-an。それ以外の場合は、式が適用される前に"menangkan"なります。nangkme-kan

于 2012-07-12T19:00:05.560 に答える
1

Javascript の正規表現から始めて、値を反復処理し、それに応じて中間値を取得する必要があります。私はあなたのためにそれを最初にやります、そしてあなたは残りを試すことができます:)

var re = /me(\w+)an/;
var str = "meangan";  
var newstr = str.replace(re, "$1");  
console.log(newstr);
// outputs ang

参考https ://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

于 2012-07-12T18:59:16.043 に答える