0

私の質問は:

入力:数千の省略されたメッセージ。

出力:フィルタリングされたメッセージ

フィルタ: ((メッセージにアラームがあります)または(メッセージに緊急事態があります))および(メッセージに復元がありません)

例:

  1. ユーザーによるUr001一般ユーザーオープニング(True)

  2. パニックゾーン警報セキュリティシステムZn2ゾーン2名前(偽)

  3. キーパッドパニック緊急セキュリティシステムUr1Uer1名前(偽)

  4. キーパッドパニック緊急復元セキュリティシステムUr1Uer1名前(True)

私は彼らの状態に同様の質問がたくさんあることを知っています。どちらが良いですか?

4

1 に答える 1

4

検索用語は既知であるため("Alarm"、、 ) "Emergency""Restore"正規表現は適切な選択ではありません。これには、使用するstrpos(またはstripos大文字と小文字を区別しない)必要があります。

そうは言っても、これらの単語を部分文字列ではなく実際の単語として検索する場合(つまり"Restored"、一致をトリガーしない"Restore"場合は、正規表現を使用する以外に選択肢はありません。この場合、\b単語の前後に配置します。それらを見つけるために。このようなもの:

if(preg_match("/\b(?:Alarm|Emergency)\b/i",$str) && !preg_match("/\bRestore\b/i",$str))

i特にその大文字化が必要な場合は、修飾子を削除してください。

于 2013-03-01T00:23:02.313 に答える