複数の文からなっている英文を一文ごとに分けて、配列にする JavaScript を書いてみた。すでに、ありそうだけど取り合えず。
文末を判定する正規表現はGNU Emacs Lispリファレンスマニュアル: 探索と一致を参考にさせてもらいました。参考というかそのままな感じですが
function sentenceSeparate(str) {
var result = [];
// "||"をエスケープ
str = str.replace(/\|\|/g, "\\\|\\\|");
str = str.replace(/([\.\?!][\]\"\'\)\}]*)($| $|\s|\s\s*)/g, "$1$2\|\|");
var lines = str.split(/\|\|/);
// エスケープしたのを戻す
for (var i = 0; i < lines.length; i++) {
if (lines[i]) result.push(lines[i].replace(/\\\|\\\|/g, "\|\|"));
}
return result;
}
まだあまり試していないのでおかしい場合もあるかも知れないです。
追記(2006-03-01)
良く考えたらエスケープとか必要なく、単純に英語で使用されない文字で区切るようにすればいいのではないかと思ったので書き直してみました。
function sentenceSeparate(str) {
var result = [];
str = str.replace(/([\.\?!][\]\"\'\)\}]*)($| $|\s|\s\s*)/g, "$1$2|");
str = str.replace(/^|||$/g, "");
result = str.split(/|/);
return result;
}
よければサンプルの実行例も出して頂けませんでしょうか?
試してみたけど出来なかったので。汗
よければサンプルの実行例も出して頂けませんでしょうか?
試してみたけど出来なかったので。汗