- ベストアンサー
文字列の一致について
URLのデータベースがあるとします。 例えば http://hogehoge.com/aaaa/ http://hogehoge.com/aaa/ http://hogehoge.com/bbb/ http://hogehoge.com/ccc/ URLにある文字列が含まれていたら、○○を表示すると言う処理をしたいと思っています。 例えばURLに「aaa」の文字列を含まれている時、「あああ」を表示しようとすると、最初に登録されている「http://hogehoge.com/aaaa/」に該当してしまいます。 「aaa」であれば、http://hogehoge.com/aaa/に該当して、「あああ」を表示させるようにできないでしょうか? 要するにURLに「aaa」が含まれていたら、「http://hogehoge.com/aaaa/」ではなく、「http://hogehoge.com/aaa/」に該当して、「あああ」を表示させる。 今は $url =~ /aaa/ のように「=~」を使用しています。 $url =~ /\/aaa\// のようにするしかないでしょうか。 アドバイスを御願いします。
- Cuty_Cat
- お礼率62% (224/358)
- Perl
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>例えばURLに「aaa」の文字列を含まれている時 該当する場合の条件がはっきりしませんね。 例えば下の例の場合該当させたいですか?させたくないですか? 1 http://hogehoge.com/aaa00/ 2 http://hogehoge.com/bbb/aaa.html 3 http://aaa.hogehoge.com/bbb/ >$url =~ /\/aaa\// >のようにするしかないでしょうか。 これで問題なければ、これでいいと思います。 何か不都合が出るようなら、その例を示してください。 $url =~ m|/aaa/| 同じことですが、こう書いた方が多少読みやすいかもしれませんね。
その他の回答 (2)
- guci-ok
- ベストアンサー率33% (49/146)
¥bで単語境界を指定します。 C:\>perl -lne "print /aaa/ ? 'OK' : 'NG'" aaa OK aaaa OK /aaaa/ OK Terminating on signal SIGINT(2) C:\>perl -lne "print /\baaa\b/ ? 'OK' : 'NG'" aaa OK aaaa NG /aaaa/ NG Terminating on signal SIGINT(2) C:\>
- moon_night
- ベストアンサー率32% (598/1831)
そのようにするしかありません。
関連するQ&A
- sedで「(~)」を使って文字列の一部を取り出し
sedで「(~)」を使って、文字列の一部を取り出したいのですが期待した結果になりません。 以下のようなファイルがあります。 そこから、最初に見つかった「A-Z0-9」を含む文字列を取り出したいのですが、 どうしても、2番目にでてくる「0-9」でなる文字列が取り出されます。 環境は、Solaris/Linuxになります。 ■ファイル cat aaa "aaa","bbb","ccc","123456","ddd","eee","fff,"0000","ggg" "aaa","bbb","ccc","AAA123","ddd","eee","fff,"0000","ggg" ■sed sed 's/.*,"\([A-Z0-9].*[0-9]\)",.*$/\1/g' aaa ■結果 0000 0000 期待する結果は、 123456 AAA123 なのですが、 期待した結果を取り出すにはどうしたらよいのでしょうか。
- ベストアンサー
- Solaris系OS
- エクセルの文字処理
以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD A B C D 1| AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は ・セル内にスペースで区切られない文字列があった場合には、B列に入れる ・それ以外はスペースで区切って、A列B列C列D列に入れる ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。
- 締切済み
- その他(業務ソフトウェア)
- 文字列から特定の文字を抜き出す
こんにちは。 シェルスクリプトで文字列から特定の文字を抜き出し、 変数に入れたいのですが、うまくいきません。 申し訳ありませんが、アドバイスをお願いいたします。 文字列 $moji=aaa_bbb_ccc (文字は変動します) $a=aaa $b=bbb $c=ccc と"_"毎に変数に代入したい。 echo $moji | awk -F_ '{print $2}' で文字を標準出力に取り出すことはできるのですが、 そこから変数に代入する方法がいまいち分かりません。
- ベストアンサー
- その他(OS)
- Perl言語でファイル入出力プログラムについて
Perlでファイル入出力のプログラムをコーディングしたいのですが、いまいちハッシュが理解しずらく困っています。わかる方よろしくお願いします。 moto.pl の中にあらかじめ AAA aaa AaAa AAaa BBB bbb BbBb BBbb CCC ccc CcCc CCcc AAA aaa AaAa AAaa .... というように一行ずつ文字列があり、この場合では最初の大文字AAAが二つあるので、その結果を例えばsaki.plに AAA 2 ... というように出力するプログラムを教えて頂けませんか?
- ベストアンサー
- Perl
- Excel 条件に一致したセルの隣のセルを返す
エクセル初心者です。どうかご指導ください。 シート1の処理1・処理2・処理3に、シート2で一致したコードの隣の値を返したいのですが可能でしょうか? シート1 シート2 コード 処理1 処理2 処理3 コード 処理名 1 AAA 1 AAA 2 BBB AAA 2 BBB 3 BBB 3 BBB 4 CCC AAA 2 AAA 5 4 CCC 4 AAA
- ベストアンサー
- オフィス系ソフト
- 正規表現でシングルクォーテーションで囲まれた文字列
VB.NET で開発を行っています。 シングルクォーテーションで囲まれた文字列の検索を行いたいのですが正規表現の記述が良くわからないので困っています。 たとえば 'AAA' + 'BBB' + 'CCC' 上記のの文字列から「'AAA'」「'BBB'」「'CCC'」も検索したいのですが,パターンとして「'.*'」を用いると「'AAA' + 'BBB' + 'CCC'」が返ってきます。 どなたかご教授ください。よろしくお願いします。
- ベストアンサー
- Visual Basic
- 2回以上繰り返される文字列の削除について
以下の文字列(置換前)で、-aaa について複数存在しているので、 最初の -aaa を残して残りの -aaa をすべて削除したいと考えています。 1回の正規表現+置換で行いたいのですが、どのようにいすればよいでしょうか? 【置換前】 -bbb -aaa -ccc -aaa -ddd -eee -aaa -fff 【置換後】 -bbb -aaa -ccc -ddd -eee -fff ちなみに、複数回の正規表現+置換を使ってよい場合は、 while (m/( -aaa.*) -aaa/) { s/( -aaa.*) -aaa/$1/; } でできると考えています。(動作確認まではしていないので間違ってるかも)
- ベストアンサー
- Perl
- sedで文字列の抜き出し
ある一部分の文字列を抜き出したく、sedを使用したいと思って試行錯誤しております。 ↓あるファイル内の文字列 aaa bbb=ccc:ddd=eee:fff=ggg: aaa bbb=hhh:ddd=iii:fff=jjj: ※aaaとbbbの間はスペースです。 ※bbb,ddd,fffはある一定のキーワードです。 ※ccc,eee,ggg,hhh,iii,jjjはバラバラの文字列で長さも一定ではありません。 【質問】 上記の文字列の中でddd=の後の文字列(eee,iii)のみを抜き出したいです。 以下のようなsedを試してみましたが、 eee:fff=ggg iii:fff=jjj が抜き出されてしまいます。 sed 's/.*:ddd=\(.*\):\(.*\)$/\1/' 恐れ入りますが、皆様の知恵をお貸し下さい。
- ベストアンサー
- その他(プログラミング・開発)
- 文字列を配列定義に使用するには
文字列を配列の定義に使用したいのですが、可能でしょうか? 具体的には以下のような内容です。 $AAA = array("name"=>"山田","val"=>"10"); とすると変数$AAAは配列になります。 $BBB = 'array("name"=>"佐藤","val"=>"20")'; とすると変数$BBBは文字列になります。 $CCC = $BBB; と変数$CCCに代入した場合に、 変数$CCCを配列として認識させたいです。 つまり print $CCC[name]; //佐藤 print $CCC[val]; //20 というように出力させたいのですが、 根本的に可能なのでしょうか…? よろしくお願いいたします。
- ベストアンサー
- PHP