web-dev-qa-db-ja.com

文中の最初の単語に一致する正規表現

句読点と空白を除いて、文の最初の単語に一致する正規表現を探しています。例:「これは文です」の「これ」。 「まず、「こんにちは!」と言いたい」の「最初」

これは機能しません:

"""([A-Z].*?(?=^[A-Za-z]))""".r
9
(?:^|(?:[.!?]\s))(\w+)

すべての文の最初の単語に一致します。

http://rubular.com/r/rJtPbvUEwx

9
endy
[a-z]+

最初のa〜z文字を取得するため、これで十分です(大文字と小文字を区別しないと仮定)。

うまくいかない場合は、[a-z]+\b、または^[a-z]\bを試すことができますが、最後の1つは、文字列がWordで始まることを前提としています。

2
Explosion Pills

これは古いスレッドですが、私と同じように人々がこれを必要とするかもしれません。文が1つ以上のスペースで始まる場合、上記のいずれも機能しません。私はこれを行って、文の最初の(空ではない)単語を取得しました:

(?<=^[\s"']*)(\w+)

説明:

(?<=^[\s"']*)文字列の先頭を検索するためのポジティブルックビハインドの後に、0個以上のスペースまたは句読文字(角かっこでさらに追加できます)が続きますが、一致には含めないでください。
(\w+)返されるWordの実際の一致

文中の次の単語は、後読みを満たさないため、一致しません。

2
Ibrahim Mezouar

この正規表現を使用できます:^[^\s]+または^[^ ]+

2
Keon-Woong Moon

この正規表現を使用できます:^\s*([a-zA-Z0-9]+)

最初の単語は、キャプチャされたグループで見つけることができます。

1
eyossi