2

JavaScriptを使用して、正規表現を使用して段落を文に分割しようとしています。私の正規表現では、文が角かっこで囲まれていることを考慮していないため、区切り文字を保持したいと思います。

ここにjsFiddle.netにコードの例を入れました

4

3 に答える 3

4

分割するのではなく、マッチアプローチを採用しました。よりタイトになる可能性があります(たとえば、文がなどで終わる場合はどうなりますか...)。

text.match(/\(?[A-Z][^\.]+[\.!\?]\)?(\s+|$)/g);

http://jsfiddle.net/DepKF/1/

于 2012-06-27T16:14:46.997 に答える
2

正規表現の例で(?= pattern)先読みパターンを使用します

var string = '500x500-11*90~1+1';
string = string.replace(/(?=[$-/:-?{-~!"^_`\[\]])/gi, ",");
string = string.split(",");

これにより、次の結果が得られます。

[ '500x500', '-11', '*90', '~1', '+1' ]

直接分割することもできます

string = string.split(/(?=[$-/:-?{-~!"^_`\[\]])/gi);

同じ結果を出す

[ '500x500', '-11', '*90', '~1', '+1' ]
于 2015-10-21T06:40:04.733 に答える
1

@Utkanosあなたの考えは良いですが、私replaceはもっと良いと思います:

text.replace(/\(?[A-Z][^\.]+[\.!\?]\)?/g, function (sentence) {
    output += '<p>'+ sentence + '</p>';
});

http://jsfiddle.net/juGT7/1/

もう一度ループする必要はありません。

于 2012-06-27T17:52:07.843 に答える