2017-04-25 25 views
0

こんにちは、文字の間に0個以上のハイフンを持つことができる文字列と一致させる必要があります。私はこれを行うためにPHP preg-matchを使用しています。文字は大文字または小文字にすることができます。ここにいくつかの例があります:文字列と複数のハイフンを一致させる正規表現

TESTTESTtest published successfully 
test-TEST-test published successfully 
Test-test published successfully 

私の正規表現は、これらのすべての異なるケースをキャプチャする必要があります。

私は行ごとにログを調べ、下の正規表現を各行に一致させようとしています。

文の場合、これは私の現在のです。

if(preg_match('/(\w*) published successfully/',$line,$matches){ 

} 

私は前にハイフンを心配する必要はありませんでしたが、私は新しいシナリオを処理するために、これを適応する必要があるとして、私はちょうど私のキャラクターキャプチャとして*ワット\使用。誰か助けてくれますか?

+2

あなたは何をしているのか、なぜ 'expode(" - "、$ s)'はうまくいかないのか教えてください。 –

+0

こんにちは私は最初の質問に追加情報を追加しましたが、このインスタンスでどのように爆発を使用するのかはわかりませんが、前に十分な情報がなかったでしょう。 – olliejjc16

+2

グッド、あなたはキャラクタークラスを考えていませんか? '[\ w - ] *'のように? '------ published successfully 'のようなケースについて心配する必要はありますか? –

答えて

1

あなたが必要とするすべては(と私はまた、1回以上の繰り返しに一致するように+量指定子を使用していないお勧め文字クラス[...]\w-を追加することです----- published successfullyのようなエッジの例を心配する必要がない場合空のマッチを避けるために0以上、):

if(preg_match('/([\w-]+) published successfully/',$line,$matches){ 

} 

regex demoを参照してください。

関連する問題