2

重複の可能性:
個々の文を解析するための正規表現とは何ですか?

大きなテキストを文に分割したい。ここでの回答から得た正規表現

string[] sentences = Regex.Split(mytext, @"(?<=[\.!\?])\s+");

そこで、パターンを使用して、分割よりもaと文字の後にaと文字が. ? !続く場合のように分割を行うことを考えました。 大文字は文の始まりを示します。spacecapital

text = " Sentence one . Sentence e.g. two ? Sentence three.
sentence[1] = Sentence one 
sentence[2] = Sentence e.g. two

略語のような問題のあるケースについては、私は置き換えを行うつもりです

mytext.replace("e.g.","eg"); 

これを正規表現で実装する方法は?

4

1 に答える 1

6

\p{Lt}Unicode の大文字 (アクセントなどを含む) を示すため、

string[] sentences = Regex.Split(mytext, @"(?<=[.!?])\s+(?=\p{Lt})");

あなたがしたいことをするべきです。

(文字クラスでエスケープされるとは思わない.、または?エスケープする必要がないことに注意してください。そのため、それらも削除しましたが、これらの文字で引き続き機能することを確認してください。)

ただし、これはまだ分割されることに注意してくださいMr. Jones...

于 2013-01-10T09:39:40.343 に答える