2

私はしばらくの間PHPを学んでおり、明確にしたいと思っていました。

preg_match次のようなさまざまな区切り記号で呼び出される関数を見てきました。

preg_match('/.../')

preg_match('#...#')

今日も%使われているのを見ました。

私の質問は2つの部分です:

全キャラ使えるのは?

そして、基準はありますか?

4

1 に答える 1

4

どれでも

  • 非英数字
  • 非空白と
  • バックスラッシュ以外の ASCII 文字

区切り文字として使用できます。

また、開始区切り記号として開始句読点記号使用する場合:

( { [ <

次に、対応する終了句読点記号を終了デリミタとして使用する必要があります。

) } ] >

最も一般的な区切り文字は/. ただし、 aが正規表現の一部である
場合は、別の区切り文字を使用することをお勧めします。/

例:

// check if a string is number/number format:
if(preg_match(/^\d+\/\d+$/)) {
  // match
}

正規表現には区切り文字が含まれているため、正規表現で見つかった区切り文字をエスケープする必要があります。

エスケープを回避するには、正規表現に存在しない別の区切り文字を選択することをお勧めします。これにより、正規表現が短くなり、クリーンになります。

if(preg_match(#^\d+/\d+$#)) 
于 2010-12-04T06:56:49.283 に答える