のような文字列があり、このなかに
"hoge hoge"
という文字があるかどうかの判定をしたいのですが、どのような正規表現を用いたらよいのでしょうか。
"hoge"ではマッチせず、"hoge hoge"でマッチしてほしいのですが、できるのでしょうか。
このやり方ややり方を紹介したサイトを教えてください。
phpでmysqlに対するsqlでREGEXPを使っています。
よろしくお願いします。
例えば、"dragonquest 2, hoge"という文字列があった場合、"dragonquest"では一致せず、"dragonquest 2"で一致してほしいのです。
失礼ですが、検索エンジンのキーワード処理とごっちゃになっていませんか?
SELECT 'dragonquest 2, hoge' REGEXP 'dragonquest 2';
は1(真)が返ってきますが、
SELECT 'dragonquest, hoge' REGEXP 'dragonquest 2';
は0(偽)が返ってきます。
mysql クライアントや phpMyAdmin で色々試してみると良いかと思います。
逆なら面倒ですが、このマッチはそれほど難しくありません。
SELECT 'hoge hoge,fuga fuga' REGEXP 'hoge hoge';
この程度なら、LIKE の方が汎用性はあるかもしれません。
SELECT 'hoge hoge,fuga fuga' LIKE '%hoge hoge%';
ご回答ありがとうございます。
'hoge'で一致してしまうとまずいのですが、大丈夫なのでしょうか?
例えば、"dragonquest 2, hoge"という文字列があった場合、"dragonquest"では一致せず、"dragonquest 2"で一致してほしいのです。
カンマを区切りとしたワードの完全一致とでも言えばよいのでしょうか…
説明が悪くてすみません。
例えば、"dragonquest 2, hoge"という文字列があった場合、"dragonquest"では一致せず、"dragonquest 2"で一致してほしいのです。
失礼ですが、検索エンジンのキーワード処理とごっちゃになっていませんか?
SELECT 'dragonquest 2, hoge' REGEXP 'dragonquest 2';
は1(真)が返ってきますが、
SELECT 'dragonquest, hoge' REGEXP 'dragonquest 2';
は0(偽)が返ってきます。
mysql クライアントや phpMyAdmin で色々試してみると良いかと思います。
> 失礼ですが、検索エンジンのキーワード処理とごっちゃになっていませんか?
SQLや正規表現の本を読んでいますが、正直こんがらがってきています…
>mysql クライアントや phpMyAdmin で色々試してみると良いかと思います。
phpMyAdminで試せたんですね、知りませんでした。これで色々試して頭の整理でもしようと思います。
ありがとうございました!
> 失礼ですが、検索エンジンのキーワード処理とごっちゃになっていませんか?
SQLや正規表現の本を読んでいますが、正直こんがらがってきています…
>mysql クライアントや phpMyAdmin で色々試してみると良いかと思います。
phpMyAdminで試せたんですね、知りませんでした。これで色々試して頭の整理でもしようと思います。
ありがとうございました!