2011-10-05 20 views
5

文字列内の特定の単語全体に一致する正規表現をPHPで実行しようとしていますが、テストされた単語の一部のみを含む単語にも一致するという問題があります。 これは大規模な正規表現でのサブクエリなので、strposのような他のPHP関数は悲しいことに私を助けません。文字列内の全単語を一致させるPCRE

文字列:に一致するように"I test a string"

言葉:/([testable|string]+)/

期待される結果:のみ"string""testable", "string"

正規表現を試してみました!あなたは言葉だけを一致させたい、[]で文字クラスを望んでいない"test", "a", "string"

+3

あなたの正規表現は '/([abegilnrst |] +)/' – NullUserException

+0

とまったく同じです。ありがとう、私は今解決しました...しかしあなたはあなたの答えを削除しましたか?:D – Inoryy

答えて

8

あなたが本当にあなたが唯一にしたい場合は

結果あなたの言葉を含む言葉ではなく、言葉の境界のアンカーを使用することができます:

/\b(testable|string)\b/ 

これは、単語境界と一致し、その後にtestableまたはstringのいずれかが続き、別の単語境界に一致します。

2

/testable|string/

関連する問題