私は次のようないくつかの主題を持っています:
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]一致しますabcd
あなたの場合、それは[^o]..である必要があります。これは、o
単純な文字検出のために正規表現が必要な理由は何ですか?
if (stripos($your_string, 'h') !== false) {
... there's an H in the string ...
}
はるかに効率的です。