JavaScriptを使用して、正規表現を使用して段落を文に分割しようとしています。私の正規表現では、文が角かっこで囲まれていることを考慮していないため、区切り文字を保持したいと思います。
ここにjsFiddle.netにコードの例を入れました
JavaScriptを使用して、正規表現を使用して段落を文に分割しようとしています。私の正規表現では、文が角かっこで囲まれていることを考慮していないため、区切り文字を保持したいと思います。
ここにjsFiddle.netにコードの例を入れました
分割するのではなく、マッチアプローチを採用しました。よりタイトになる可能性があります(たとえば、文がなどで終わる場合はどうなりますか...
)。
text.match(/\(?[A-Z][^\.]+[\.!\?]\)?(\s+|$)/g);
正規表現の例で(?= 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' ]
@Utkanosあなたの考えは良いですが、私replace
はもっと良いと思います:
text.replace(/\(?[A-Z][^\.]+[\.!\?]\)?/g, function (sentence) {
output += '<p>'+ sentence + '</p>';
});
もう一度ループする必要はありません。