2012-04-03 5 views
0

私は特定のパターンの文字列を検索しています。パターンの文字列を検索するにはどうすればよいですか?

$string = "Monday: 08.00-18.00"; 
$pattern = "xx.xx-xx.xx"; 

"X"、 "0" とすることができる "1"、 "2"、 "3"、 "4"、 "5"、 "6"、 "7"、 "8" または " 9 "となる。 " - "は " - "でなければなりません。 "。"になり得る "。"または ":"。

これには方法がありますか?

+1

はあなたがregexpressionsを見たことがありますか? – BugFinder

+0

正規表現 –

答えて

1

あなたは

$string = "Monday: 08.00-18.00"; 
$pattern = "/[0-9]{2}[:|\.][0-9]{2}[-][0-9]{2}[:|\.][0-9]{2}/"; 
if(preg_match($pattern,$string,$matches)) 
{ 
    // has the pattern, do something 
    //$matches has all the matches from preg_match 
    echo $matches[0]; // prints the matched pattern 
} 
+0

Thx!しかし、それは動作していないようです。この関数はfalseを返します。 MichaelRushtonsの例と同じです。 – Michael

+0

もう一度やり直してください。 preg_matchに$ matchesを追加するのを忘れてしまい、パターンが[:|。]で間違っていました。私はそれを試して働いた。 MichaelRushtonパターンの問題は、[:。]に( "|"または ")を持たないということです。 "^"は文字列がそこで始まり、 "$"が文字列の終わりであることを意味します。だから、彼のパターンはまさにそのような文字列(08.00-18.00)を探していますが、あなたの場合は、最初に(「月曜日:」など)、最後に何かを持つことができます。 –

+0

優秀!完璧に動作します – Michael

3

preg_matchを使用してください。
xを[0-9]に置き換えてください。
[.:]となります。

+0

'(。:)の' .'は、( 's'修飾子がセットされていない限り)改行を除くすべての文字にマッチします。 – MichaelRushton

+0

Okey!私はPCREパターンが初めてですが。私はそのような機能の例を非常に感謝しています。 – Michael

+0

@MichaelRushton:気づいてくれてありがとう。私はそれを修正しました:) –

0

のようにこれはあなたが必要なものであるべき何かをしたい:

preg_match('/^[0-9]{2}[:.][0-9]{2}-[0-9]{2}[:.][0-9]{2}$/D', $string) 
関連する問題