2016-11-23 4 views
2

に特定の文字まで置き換える:正規表現はのは、私は、文字列があるとしましょうPHP

a) 'one4two2three1' 
b) 'one4two2three1four#five7' 

私は空のスペース(「」)でこれらの文字列からすべての番号を交換したい - それまでは「#」文字

したがって、最終的な出力は次のようになるはずです:

a) 'onetwothree' 
b) 'onetwothreefour#five7' 

preg_replace()や他の正規表現関数を使用する方法はありますか?私はあなたが一致して破棄する(*SKIP)(*F)をPCRE動詞を使用することができます

答えて

3

、より効率的な方法にstrpos()とSUBSTR(と「場合」を避けるため)及び見つけようとしている

一部#後:

$repl = preg_replace('/#[^#]*$(*SKIP)(*F)|\d+/m', '', $str); 

RegEx Demo

#[^#]*$(*SKIP)(*F)が一致し、入力中#後部分をスキップして、私たちは、空の文字列で、すべての数字を置き換えることができます。

+1

うわー、それは私が探していたものです!これを使用する制限はありますか? – user7201963

+0

PCRE(PHP)正規表現を使用しているため、制限はありません。 – anubhava

+0

「pcre正規表現を使用する」とはどういう意味ですか?私はシンプルなPHP(5.3から7.0)を使用しています - それは動作しますか?私は、拡張機能/プラグイン/特別な状況を必要としないことを願っています... – user7201963

関連する問題