
ユーザーエイジェントを検索して
UP.Browserという文字列があった場合、
ユーザーエイジェントをauという置き換え表示したいと思っています。
具体的には
KDDI-KC3R UP.Browser/6.2_7.2.7.1.K.4.310 (GUI) MMP/2.0
↓
au
と表示したいのですが、
Perlで記述する場合以下のように書いて間違えありませんか?
間違いなどありましたご指摘ください。
if($ENV{'HTTP_USER_AGENT'} =~ /UP.Browser/) {
$agent=~s/$ENV{'HTTP_USER_AGENT'} /au/g;
}
No.1ベストアンサー
- 回答日時:
「間違いの可能性がある」あるいは「もっと効率いい方法がある」と思います。
・${HTTP_USER_AGENT} が UPXBrowserでもマッチします。
→UP.Browser と「.」以外が絶対に無いのなら問題にはなりませんが
→.をエスケープするとか、indexを使うとか。
・$agentの中身はどうなっているのでしょう?
→UP.Browserとかが沢山あるならともかく、一つしかないのならgはいらないです
→上と同様KDDI-KC3R UPMBrowser/612_7324771-K-45310 (GUI) MMP/250 みたいなのも置換されます。まずないでしょうが。
→$agent=$ENV{'HTTP_USER_AGENT'} なら、置換などせずに $agent='au' ; で済みますよね
・$ENV{'HTTP_USER_AGENT'} は今アクセスしている人のものです
→ 「あなたはauを使っています」みたいな使いかたならいいですが
忙しくて見るのが今になってしまい、申し訳ありません。そんな方法もあるんですね。まだ初心者なので思いつきませんでした!いい方法をお教えくださり、ありがとうございます。
No.4
- 回答日時:
>#2
ああ、本当ですね。うっかりしてました。
実際でもタマにやらかします。<メタ文字の見落し。
最初からパターンを作ろうとすると、まず大丈夫ですが、特定の文字列を見付けようとコピペしたときとかによくありますね。
そういうわけで、 決まった文字列を検索するなら、indexを使うとか、メタ文字を無効にする\Q \E を使うとかした方がいいですよ。という実例でした。
質問者からの補足がないので、どんな方法がいいのかアドバイスできませんが。
No.3
- 回答日時:
こういうこと?
$agent_length = length($ENV{'HTTP_USER_AGENT'});
$agent_index = index($agent, $ENV{'HTTP_USER_AGENT'});
if (0 <= $agent_index && 0 <= index($ENV{'HTTP_USER_AGENT'}, "UP.Browser")) {
substr($agent, $agent_index, $agent_length, "au");
}
No.2
- 回答日時:
きっと勇み足だと思いますが, 本当に $ENV{'HTTP_USER_AGENT'} の値が
'KDDI-KC3R UP.Browser/6.2_7.2.7.1.K.4.310 (GUI) MMP/2.0'
なら
KDDI-KC3R UPMBrowser/612_7324771-K-45310 (GUI) MMP/250
は置換できないですよね>#1. 「かっこ」にマッチしない....
さておき, 「ユーザーエイジェント」と $agent と $ENV{'HTTP_USER_AGENT'} とはどのような関係にあるんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を保持したままセ...
-
AppleScriptファイルの読み書き...
-
パワーポイントの一括置換:複...
-
VBA 置換文字がみつからない時
-
秀丸マクロ ファイル名変更
-
○文字目に文字挿入
-
テキストデータの解析
-
複数のパワーポイントファイル...
-
c++で積分のプログラムを実行し...
-
エクセルで数値を全角文字(カ...
-
文字コードの%E3%80%とは何です...
-
COBOLでの全角文字の判定をした...
-
COBOL・全角判定
-
住宅にカナを入力する際に丁目...
-
エクセルでの”々”の扱い
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
エクセルにMicrosoft Barcode C...
-
空白を表示したい
-
CSVの定義
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
csvデータのダブルクォーテーシ...
-
各項目がダブルクォーテーショ...
-
VBA 置換文字がみつからない時
-
秀丸エディタで、「-」や「ー」...
-
C言語でテキストファイルの内容...
-
csvデータ ダブルクォーテ...
-
C#で空白行を削除する方法
-
Excel・ユーザーフォームの情報...
-
xmlファイル内の文字列置換
-
フォントの色を保持したままセ...
-
正規表現 特定の文字列を含む行...
-
○文字目に文字挿入
-
複数のパワーポイントファイル...
-
スペースで区切られた氏名から...
-
3回以上の改行を2回にする正...
-
Eclipse 改行後のタブ
-
EXCEL VBA でCTRL+Fのダイア...
-
word VBA 改ページの繰り返しに...
-
MKエディタやサクラエディタを...
おすすめ情報