0

私は次のようないくつかの主題を持っています:

hu ha ho hi

私のパターンはこんな感じ#^(h.+)$#

すべての文字列を として返していますtrue。これは予期されることです。を含まない文字列のみを選択したいと思いますo

正規表現に負の条件を追加するにはどうすればよいですか?

4

4 に答える 4

2

を除くすべての文字に一致する に.置き換えます。[^o]o

#^(h[^o]+)$#

[]文字クラスを表し、先頭はそれを^反転します。

于 2012-11-08T14:26:03.043 に答える
1

文字列に文字が含まれていないことを確認するにはo、negarivelookaheadを使用します

^(?!.*o)

したがって、文字列がで始まり、文字が含まれhていない場合に文字列をチェックする場合は、o

^(?!.*o)h

他のオプションは

^h[^o]+$

ここで、行末を使用$して、hの後のすべての文字が。以外であることを確認する必要がありますo

于 2012-11-08T14:42:01.170 に答える
1

負の文字クラスで負の条件を追加できます

したがって、、、、を除くすべての文字に[^abcd]一致しますabcd

あなたの場合、それは[^o]..である必要があります。これは、o

于 2012-11-08T14:27:13.707 に答える
0

単純な文字検出のために正規表現が必要な理由は何ですか?

if (stripos($your_string, 'h') !== false) {
   ... there's an H in the string ...
}

はるかに効率的です。

于 2012-11-08T14:41:51.447 に答える