2017-11-14 8 views
-2

同様にマッチしたグループと一致するには?私はそれが自分自身に置き換えて欲しいと一致しています。明らかに"$1"とのマッチングはあまりうまくいきません。正規表現がどのようにここでは、たとえば

EDIT:詳しい説明が必要なようです。だから私はこの文字列を持っている場合

OK good. And this sentence? And maybe even this one! 

私はエンディングに一致することができます。だから句読点にマッチします。

+0

これは非常に幅広いです。あなたが何を求めているのかは不明です。あなたの質問に実際の質問を含めてください(タイトルだけでなく)。サンプルの入力と期待される出力を提供することもできますか?私はあなたの質問がそうでなければ閉じられることを恐れる。別の注意として、あなたは '(\!\ s)|(\?\ s)|(\?\ s)'(\:\ s) 'を([。!?:] \ s)' – ctwheels

+1

また、 'php'タグでマークされている質問については、完全なPHPコードを提供してください。 – Dinei

+0

'preg_replace_callback'コールバック関数内のキャプチャを評価し、それに応じて置き換えることができます。 –

答えて

2

置換のすべてのキャプチャグループを使用できます。一致するグループのみが値を持ちます。だから、正規表現のためにあなたが使用することを提供してきました:第三キャプチャグループが一致した場合

$1$2$3$4 

$3が移入され、他のすべての空。

0
今、あなたは句読点を取得するためにグループ1を一致させることができます

/([.!?:])\s/ 

にあなたの正規表現を変更し

+0

あなたはキャプチャグループのスペースを失うようにします。私のコードを見て、あなたはあなたのものが同じ結果を与えていないことがわかります。私の場合、スペース\ sは各キャプチャグループ内にあります。私は$ 1 $ 2 $ 3 $ 4の作品しかないと思う。 – Hasen

関連する問題