私は次のようないくつかの主題を持っています:
hu
ha
ho
hi
私のパターンはこんな感じ#^(h.+)$#
すべての文字列を として返していますtrue
。これは予期されることです。を含まない文字列のみを選択したいと思いますo
。
正規表現に負の条件を追加するにはどうすればよいですか?
私は次のようないくつかの主題を持っています:
hu
ha
ho
hi
私のパターンはこんな感じ#^(h.+)$#
すべての文字列を として返していますtrue
。これは予期されることです。を含まない文字列のみを選択したいと思いますo
。
正規表現に負の条件を追加するにはどうすればよいですか?
を除くすべての文字に一致する に.
置き換えます。[^o]
o
#^(h[^o]+)$#
は[]
文字クラスを表し、先頭はそれを^
反転します。
文字列に文字が含まれていないことを確認するにはo
、negarivelookaheadを使用します
^(?!.*o)
したがって、文字列がで始まり、文字が含まれh
ていない場合に文字列をチェックする場合は、o
^(?!.*o)h
他のオプションは
^h[^o]+$
ここで、行末を使用$
して、hの後のすべての文字が。以外であることを確認する必要がありますo
。
負の文字クラスで負の条件を追加できます
したがって、、、、を除くすべての文字に[^abcd]
一致しますa
b
c
d
あなたの場合、それは[^o]
..である必要があります。これは、o
単純な文字検出のために正規表現が必要な理由は何ですか?
if (stripos($your_string, 'h') !== false) {
... there's an H in the string ...
}
はるかに効率的です。