2017-01-08 4 views
3

私は結果からコロンを除外しようとしています。正規表現は、コロン(:)を除外することはできません

例: テキストテスト:私は「これを見て、」しかし/([^:].*(?=+))/が動作していないキャプチャしたい本+例で

を見て。

私には何が欠けていますか?私はコロン(:)の後ろとプラス記号の前にすべてをキャプチャしたいと思います。

おかげ

+0

OMG、私が間違って何をやっていましたか? LOL –

+0

あなたの正規表現は無効です。 '+'をエスケープする必要があります: '\ +' –

+1

また、http://regex101.com/をチェックしてください。 regexesをデバッグすると非常に便利です。 –

答えて

3

あなたはこれを試すことができます。

:\s*(.*?)\s*\+ 

あなたがキャプチャgroup 1

<?php 
$re = '/:\s*(.*?)\s*\+/'; 
$str = 'Text Test: Look at this + example'; 
preg_match_all($re, $str, $matches); 
echo $matches[1][0]; 
?> 
であなたのテキストを取得:

([^:]*(?=\+)) 


you also need to put escape ⬇ for + sign 
        ([^:].*(?=\+)) 
You do not need this dot^

あなたのコメントに答えるために、あなたが、これは試すことができます

Run it here

Explanation

+1

感謝します!私は正規表現でプラスをエスケープしていましたが、ドット(。)を追加していました。正規表現を台無しにしていた点です!ありがとうございました! –

+0

別の問題、今私はwan'tを持っていますが、それは最初と最後に空白があります。どうすれば削除できますか? –

+0

あなたのコメントごとに答えが更新されました –

関連する問題