2017-12-04 9 views
-3

私は正規表現を学習していると私は正規表現のマッチングをしたい。しかし、以下のコードを使用して一重引用符を正しくエスケープすることはできません。だから、私は "[地獄\ 'o'、 '世界']"を取得しています。 "['Hell'o'、 'World']"という簡単な答えには、以下のコード以外の/ [^ \ s] +/gを使うことができます。しかし、私が正規表現システムを使うと、正規表現システムの仕組みを理解することは難しいです。出力時に一重引用符をエスケープするために他の正規表現マッチングトークンを使用することは可能ですか?JavaScript一重引用符を使用して正規表現固有のマッチング

function printWords(str) { 
    var count = 0; 
    var arr = str.match(/[\w’]+/g); 
    console.log(arr); 
    
} 
printWords("Hell'o World ")

-

+0

たぶん私には正常に見えるれ、私はあなたが望むものを理解していないが、私はこの結果を取得しています: ["Hell'o"、 "World"] – zord

+1

[引用符で囲まれた文字列の正規表現]を重複している可能性があります(https://stackoverflow.com/questions/249791/regex-for-quoted-string-with-escaping-quotes ) – ctwheels

+0

'出力時に一重引用符をエスケープするために他の正規表現のマッチングトークンを使用することは可能ですか? - あなたが記述したコードはあなたが記述した通りに動作します。どうした?達成されない期待されるアウトプットのインプットがありますか? – Nope

答えて

1

[OK]を、私は私が正しくあなたを理解していない場合場合はマイルマイナスを与えないでくださいわからない:)しかし、私はあなたのコードと変更を使用している場合一重引用符を通常の一重引用符に変換するのは、/[^\s]+/gと同じです。だから私はそれがあなたが望んだものだと思います。そうでない場合は、申し訳ありません:)

function printWords(str) { 
 
    var count = 0; 
 
    var arr = str.match(/[\w']+/g); 
 
    console.log("/[\w']+/g\n", arr); 
 
} 
 
printWords("Hell'o World "); 
 

 
function printWordss(str) { 
 
    var count = 0; 
 
    var arr = str.match(/[^\s]+/g); 
 
    console.log("/[^\s]+/g\n", arr); 
 
} 
 
printWordss("Hell'o World ")

よろしく、KJ

+0

私はrepl.itオンラインエディタで以前と同じ出力を得ていますが、ここでやっているようにうまくいくはずです。とにかくたくさんありがとう。 –

+0

私は問題がrepl.itにあると思います。それは通常のシングルクォートをそれ自身のものに変更し、それを認識しません。 –

+0

これは知っておいてよかったです。ありがとう! –

関連する問題