私は正規表現初心者で、段落を文に分割しようとしています。私の言語では、文の途中でかなりの数の省略形 (例: bl.a.) を使用するため、私がする必要があるのは句読点を探すことであり、その後に 1 つの句が続くという結論に達しました。スペースに続いて、次のような大文字で始まる単語:
[sentence1]...anymore. However...[sentence2]
したがって、次のような段落:
Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang. Det er ikke en bureaukratisk lovtekst blandt så mange andre.
この出力で終了する必要があります。
[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang.
[1] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.
これではありません:
[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v.
[1] => i forbindelse med afskedigelser af større omfang.
[2] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.
これの最初の部分を肯定的な後読み機能で行うソリューションを見つけました。
$regexp = (?<=[.!?] | [.!?][\'"]);
その後
$sentences = preg_split($regexp, $paragraph, -1, PREG_SPLIT_NO_EMPTY);
これは素晴らしい出発点ですが、省略形が多いために何度も分割されます。
私はこれをやろうとしました:
(?<=[.!?]\s[A-Z] | [.!?][\'"])
いずれかのすべての出現をターゲットにする
. or ! or ?
スペースと大文字が続きますが、うまくいきませんでした。
私がやろうとしていることを達成する方法があるかどうか、誰かが知っていますか?