私は| 1 | 7 | 11 | 私はpreg_matchを使ってチェックする必要があります。そこにあるか| 11 |そこになど、私はこれをどうやって行うのですか?PHP Preg_matchは正確な単語に一致します
3
A
答えて
2
2つの数字の存在を確認する必要がある場合は、より高速のstrposを使用してください。
if(strpos($mystring, '|7|') !== FALSE AND strpos($mystring, '|11|') !== FALSE)
{
// Found them
}
または自由のための正規表現をテストするために数
preg_match('/\|(7|11)\|/', $mystring, $match);
使用regexpalをキャプチャするために低速の正規表現を使用しました。あなたが本当に(私はXeoncross'答えのように、strpos
をお勧めしていても)preg_match
を使用したい場合は
0
、これを使用する:
strpos($string, '|'.$number.'|'));
:
if (preg_match('/\|(7|11)\|/', $string))
{
//found
}
+0
明確にするために、例えば、(7 | 11 | 13)に '(7 | 11)'を置き換えて、7,11,13にマッチさせることができます。 – cambraca
0
は、あなたの文字列が常に起動し、
|
で終わると仮定すると、
17
\b
を式の前後に使用すると、単語全体としてのみ一致します。
$str1 = 'foo bar'; // has matches (foo, bar)
$str2 = 'barman foobar'; // no matches
$test1 = preg_match('/\b(foo|bar)\b/', $str1);
$test2 = preg_match('/\b(foo|bar)\b/', $str2);
var_dump($test1); // 1
var_dump($test2); // 0
だからあなたの例では、それは次のようになります。
$str1 = '|1|77|111|'; // has matches (1)
$str2 = '|01|77|111|'; // no matches
$test1 = preg_match('/\b(1|7|11)\b/', $str1);
$test2 = preg_match('/\b(1|7|11)\b/', $str2);
var_dump($test1); // 1
var_dump($test2); // 0
関連する問題
- 1. 正確な単語の一致(英語以外の文字)
- 2. Rストリングの一致の正確な単語
- 3. 正確な単語の一致のためのmysqlの正規表現
- 4. Mysqlのクエリが正確な単語と一致し、データベースからその正確な単語を削除します
- 5. 正確な一致の代わりに単語を含むハッシュタグのスクラップ
- 6. PHP preg_match()正規表現のパターンが空白と一致する
- 7. 可能な単語に一致する正規表現
- 8. 空白がない単語に一致する正規表現
- 9. 正規表現と一致する単語がない空白
- 10. javascript正規表現と単語が一致しない
- 11. 単一の単語以外の任意の単語に一致
- 12. 正規表現の単語の最初の文字は一致しますが、 "and"は一致しません。
- 13. 正規表現は他の単語がある場合に単語に一致します
- 14. 正規表現:特定の単語まですべて一致(PHP)
- 15. 正規表現ではなく内部の単語と一致[そして]
- 16. php preg_matchは、一致しない部分があると確信しているときに、文字列の一致部分のみを返します。
- 17. 特定の単語に一致するPythonの正規表現
- 18. 文中に一致する単語がC#の正規表現
- 19. 単語の一致に先行する正規表現
- 20. php preg_match単語を見つけます。私は文字列を返します。
- 21. 任意の数の単語の後に正規表現が一致しない
- 22. php preg_match - >一致する値を変数に保存しますか?
- 23. 複数の単語のpreg_match
- 24. PHP Regex正確なURL一致、変更img src
- 25. str_replace:単語全体に一致
- 26. Salesforce SOSL:正確に一致するフィールド
- 27. 数字またはスペース+数字の後に一致しない単語の一致
- 28. Mysqlと一致する短い単語
- 29. NLTKのチャンクパーサーと一致する単語
- 30. .txtファイルと一致する単語
17、27、71および111、211及び114のような数字がいくつか – Yeroon
感謝に名前を付けるためにこれもTRUEを返します、これははるかに簡単な方法です動作します! – ITg
@ Yeroonああ、ちょうどパイプのcharを忘れてしまった。 – Xeoncross