2017-12-17 5 views
0

これはおそらく私がこれを作っているよりも簡単であるはずです。これは簡単な質問であれば申し訳ありません。次の期間まで最初の期間と空白の間の正規表現

私はRailsアプリケーションの正規表現を使用しています(正規表現は言語に基づいて変更されますか?)。このようなフレーズを使用したいと思います: "私はRegExpに慣れていません。これは含まれてはならない3番目の文章です。そして私がこれまでにしようとしているものを(先頭のピリオドと空白がなく、最後にピリオドなし)ここで

「うまくいけば、SO、ここで私を助ける」正規表現の復帰をされてあります

^([^(.)\s]+) 

([^\.\s]+) 

((\.\s)) 

\.\s+\K.+ 

私は本当にここで何をすべきか分からない。あなたの助けをもう一度ありがとう!

+1

'\。\ s +(。+)'を使用し、グループ1の値を取得します。 [サンプルデモを見る] PHP用(https://regex101.com/r/lCJOda/1) '\ K'を使用する場合もあります –

+1

次のピリオドと空白' \。\ s ' 。\ * \ '\。\ s \ K [^。] *(?= \。)' – sln

+0

sln、正規表現に空白文字の後ろにすべてが含まれるようにするにはどうすればよいですか? –

答えて

2

この問題を解決できるコメントをいただきありがとうございます。

\A[^.]*\.\s\K[^.]*(?=\.) 

翻訳:

\A

[^.]*はあなたがいる限り、彼らは前と同じ数の文字や空白を(持つことができると言う文字列

の開始を宣言し、最終的な解決策は、以下のことになりました第1の期間)

\.\s

は、最初の期間を検出し、空白

\Kその後、

[^.]*が始まり、次の最初の期間の後に停止する最初のピリオドまでのすべての文字や空白

(?=\.)状態(\ Kでマーク)

感謝を含む式でその後すべてが含まれ再び助けを求めて! Hopefully SO will help me out here

+0

なぜ 's [/ \。\ s +([^。] +)/、1]'だけではないのですか? –

+0

Wiktor、私がrubular.comを使うと、この解決法はうまくいかないようです。なぜスラッシュがあるのか​​分かりませんか?言語の違いがありますか?私はわかりません。私はあなたの助けに感謝します! \ Kについてのあなたの提案は本当に助けになりました! –

+0

下記の私の答えを参照してください。 –

1

これは動作するはずです。それは2番目の文を「うまくいけば、ここで私を助けてくれるだろう」と捉えています。

\.\s*([\w\s]*)\. 
+0

ありがとうございます。最終的な答えを下記に投稿してください。 –

1

あなたはRuby demo、出力を参照してください

s[/\.\s+([^.]+)\./, 1] 

を使用することができます。ここで

[/regex/, 1]構文を使用すると、グループ1の内容はこのように、あなたが本当に\Kmatch reset operatorを必要としませんが、きっとあなたは

s[/\.\s+\K[^.]+(?=\.)/] 
を使用することができ s文字列と出力のみに regexを適用することを意味します

と同じ結果が得られます。

関連する問題