11/03/26 00:38:06.48
正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。
正規表現 Part7
スレリンク(tech板)
2:デフォルトの名無しさん
11/03/26 01:09:51.73
◆関連サイト
正規表現メモ
URLリンク(www.kt.rim.or.jp)
Perl正規表現雑技
URLリンク(www.din.or.jp)
Regular Expression(Riue ちゃんの正規表現講座)
URLリンク(www.sixnine.net)
正規表現パズル
URLリンク(oraclesqlpuzzle.hp.infoseek.co.jp)
詳説 正規表現
URLリンク(www.oreilly.co.jp)
正規表現プログラミングFAQ
URLリンク(capslockabcjp.kitunebi.com)
JScript 正規表現の概説
URLリンク(msdn.microsoft.com)
.NET Framework 正規表現言語要素
URLリンク(msdn.microsoft.com)
【 初心者 】 正規表現 【 入門 】
URLリンク(funcchan.blog16.fc2.com)
3:デフォルトの名無しさん
11/03/26 01:10:52.77
◆関連スレ
[UNIX板] 正規表現
スレリンク(unix板)
[WebProg] 正規表現道場
スレリンク(php板)
◆前スレ
[1] スレリンク(tech板)
[2] スレリンク(tech板)
[3] スレリンク(tech板)
[4] スレリンク(tech板)
[5] スレリンク(tech板)
[6] スレリンク(tech板)
[7] スレリンク(tech板)
4:デフォルトの名無しさん
11/03/26 01:11:41.35
スルーされにくい質問のテンプレと例
●正規表現の使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
5:デフォルトの名無しさん
11/03/26 13:27:53.72
乙
6:デフォルトの名無しさん
11/03/27 17:45:43.26
この勢いだとdat落ちしそうだな
7:デフォルトの名無しさん
11/03/27 18:17:41.22
ここで聞くより試した方が早いし
JavaScript
URLリンク(regexpal.com)
Ruby
URLリンク(www.rubular.com)
.NET
URLリンク(regex-recipe.frozenlib.net)
PHP
URLリンク(www.rider-n.sakura.ne.jp)
8:デフォルトの名無しさん
11/03/27 19:28:21.14
>>7
perlのってないですかね
9:デフォルトの名無しさん
11/03/30 11:49:01.94
どなたかご教授ください・・・
●正規表現の使用環境
EmEditor
●検索か置換か?
置換
●説明
鍵カッコ内の文字列と前方の文字列を入れ替えたい。
●対象データ
AAA「BBB」/CCC「DDD」/EEE「FFF」…YYY「ZZZ」
●希望する結果
BBB「AAA」/DDD「CCC」/FFF「EEE」…ZZZ「YYY」
10:デフォルトの名無しさん
11/03/30 16:26:48.54
>>9
試してないけど
検索: ([^「」/]+)「([^」]+)」
置換: \2「\1」
11:デフォルトの名無しさん
11/03/31 09:04:29.54
>>10
ありがとうございます!
12:デフォルトの名無しさん
11/04/03 22:46:00.44
●正規表現の使用環境
秀丸(複数行置換)
●検索か置換か?
置換
●説明
上2行は条件付けの為に検索時に必要になり、置換時は style=0 のみ style=2 へ
変更したいです。
●対象データ
name=Relative
color=#000000
style=0
●希望する結果
name=Relative
color=#000000
style=2
********************************************
下のようにnameとcolorは値が変わるので.*としているのですが、
置換文の置換時に変更しないという書き方が分かりません。
分かる方おりましたら教えて下さいませ。
[検索条件]
name=.*
color=.*
style=0
[置換文]
name=
color=
style=2
13:デフォルトの名無しさん
11/04/03 23:22:18.38
検索 name=(.*)\ncolor=(.*)\nstyle=0
置換 name=\1\ncolor=\2\nstyle=2
14:デフォルトの名無しさん
11/04/03 23:37:55.17
>>13
無事出来ました、どうもありがとうございます!
15:デフォルトの名無しさん
11/04/07 17:46:48.45
Excelの置換で、
マッチした文字列を、マッチした文字列の最初の一文字で置換したいです。
たとえば、
りんご
ごりら
ぼーる
だと、
り
ご
ぼ
に置換したいです。
置換前の正規表現と、置換後の正規表現はどのようにすればよいのでしょうか?
16:デフォルトの名無しさん
11/04/07 18:00:09.97
最近のExcelって正規表現で検索・置換ができるようになったの?
17:デフォルトの名無しさん
11/04/07 18:02:48.07
>>16
アドオンみたいなのでいけるようになります。
18:デフォルトの名無しさん
11/04/07 19:57:20.75
検索 (.).*
置換 \1
19:デフォルトの名無しさん
11/04/10 01:24:00.50
繰り返しの処理は分かるので正規表現の書き方を教えて頂きたいです。
よろしくお願いします。
●正規表現の使用環境
VB.NET2003
●検索か置換か?
検索
●説明
果物の名前を検索したい
●対象データ
箱の色・箱A/緑、箱B/橙、箱C/黄、箱D/赤
箱の中身・箱A/メロン、箱B/みかん、箱C/バナナ、箱D/りんご
箱の大きさ・箱A/100cm、箱B/120cm、箱C/140cm、箱D/160cm
●希望する結果
メロン
みかん
バナナ
りんご
20:デフォルトの名無しさん
11/04/10 01:46:27.24
メロン|みかん|バナナ|りんご
21:デフォルトの名無しさん
11/04/14 23:47:33.90
.replace(/^(http:\/\/[\w-]+\.ggpht\.com\/(?:[\w-]+\/){4})s[\w-]+\/([\w-]+\.[\w-]+)$/, "$1$2")
「%20」や「%26」や2バイト文字を含むURLで動作しないので
例:URLリンク(lh5.ggpht.com)
動作するように、ご教授お願います
22: 忍法帖【Lv=23,xxxPT】 【東電 80.1 %】
11/04/15 12:38:43.75
また猫かよ
URLリンク(lh5.ggpht.com)
URLリンク(lh5.ggpht.com)
最初以外の[\w-]を[^/]に変える
あとは考えてくれ
23:デフォルトの名無しさん
11/04/15 15:51:46.12
var url = "URLリンク(lh5.ggpht.com)";
var elems = url.split(/\//); /* このあたりがそこはかとなくスレの趣旨に合致 */
var filename = elems.pop(); elems.pop(); elems.push(filename);
var new_url = elems.join('/');
24:デフォルトの名無しさん
11/04/16 16:39:05.13
●正規表現の使用環境
C#.Net
●検索か置換か?
検索
●対象データ
data
(data
data)
(data)
Xdata
dataY
●希望する結果
data
dataが()XY以外と隣接している場合は検索を一致させたくないのですが、
それが中々できません。
よろしくお願いします。
25:24
11/04/16 17:12:20.27
すいません、追記です。
dataの部分をグループにまとめたいです
26:デフォルトの名無しさん
11/04/16 20:41:22.03
思いついたのをそのまま書いたらすげー長くなってしまった
((?<=[()XY])data|data(?=[()XY])|(?<=[()XY])data(?=[()XY]))
一番上のdataも含めるなら
((?<=[()XY])data|data(?=[()XY])|(?<=[()XY])data(?=[()XY])|^data$)
追記はよくわからん
27:デフォルトの名無しさん
11/04/16 21:58:05.25
^(data)$
とは違うのか?
28:デフォルトの名無しさん
11/04/16 22:12:13.20
最初はそれかと思った。でも
>()XY以外と隣接している場合は検索を一致させたくない
ということなので()XYに隣接してるdataが引っかかるようにしといた
29:デフォルトの名無しさん
11/04/16 23:02:36.31
皆さんありがとうございます。
現在出先なのでまだ確認できませんが、家に帰ったらやてみようと思います。
>>28
data
(data
dataY
などは一致させたいのですが、
bigdata
などは一致させたくないのです
分かりづらくてすいません
30:デフォルトの名無しさん
11/04/17 13:54:16.70
V2Cとか正規表現を使える2ch専ブラってマジ便利すぎるな。
31: 忍法帖【Lv=4,xxxP】
11/04/17 16:20:34.48
正規表現でとあるスレの、特定のURLを含まないレスをあぼーんにしたいと考えています
特定のURLは"mt=8"と"hibari"が含まれたURLです
[^(mt=8)(hibari)]
と試しましたが駄目でした。どのようにすればよいのでしょうか?
32:デフォルトの名無しさん
11/04/17 18:00:16.76
mt=8とhibariを含まないURLにマッチでいいんだよね?
^((?<!mt=8).(?!mt=8))*$
^((?<!hibari).(?!hibari))*$
正規表現を複数登録できるならこの2つでいける
なんとか1つにまとめようとしたんだけど無理だったわ。
1つにまとめれる人いたらやり方教えて
33: 忍法帖【Lv=4,xxxP】
11/04/17 20:43:46.93
>>32
二つを併用しようとしたら全部のレスが消えてしまったのですが、上の
^((?<!mt=8).(?!mt=8))*$
だけでも絶大な効果だったので下のは諦めることにします
有難うございました!
34:デフォルトの名無しさん
11/04/17 20:52:05.01
>>31,32
(Perl正規表現雑技を見ながら)
両方の文字列を共に含まないなら
^(?:(?!mt=8.*hibari)(?!hibari.*mt=8).)*$
どちらか一方でも含まないなら
^(?:(?!mt=8)(?!hibari).)*$
でいけるっぽい
35:32
11/04/17 21:28:07.66
>>34
量指定子って先後読みには使えないと思ってたけど
使えないのは後読みだけなのか。間違って覚えてた
先後読み両方使うより先読みだけのほうがスマートだな
勉強になった。ありがとう
36: 忍法帖【Lv=4,xxxP】
11/04/17 23:44:32.70
>>34
おお、下の
^(?:(?!mt=8)(?!hibari).)*$
で望み通りになりました
>>34-35
本当に有難うございます!
37:24
11/04/18 21:16:19.92
>>26
ようやく自宅のPCを付けて確認することができました。
ありがとうございます。
私が望んでいた動きができました!
38:デフォルトの名無しさん
11/04/19 02:20:36.99
>>22-23
[^/]でいけました
ありがとうございましたm(_ _)m
39:デフォルトの名無しさん
11/04/21 21:50:15.99
Windowsなんですが、
C:\work\20110410dsk30.jpg
C:\work\2011419100002.jpg
D:\My Pictures\保存画像\カレイドスター\e2498f54.jpg
D:\My Pictures\保存画像\プリキュア\03cde8e1.jpg
D:\My Pictures\保存画像\プリキュア\10mai458354.jpg
こう言うフルパスからファイル名だけ抜き出したいのですが、「.*\\」とすると最後の10mai458354.jpgだけしか残りません。
どうすれば、1行毎に、行頭からその行の最後の\記号までを指定できるのですか?
40:デフォルトの名無しさん
11/04/21 22:11:05.31
ロゼッタの画像うpしてくれたらがんばって答える
それはともかく使ってる処理系かエディタの名前書いたほうがいいよ
バックスラッシュがややこしい
41:デフォルトの名無しさん
11/04/21 22:15:07.07
ロゼッタって誰?
バックスラッシュがややこしいとは?
42:デフォルトの名無しさん
11/04/21 22:16:47.46
^[^\n]*\\
>>40
どうぞ
URLリンク(www.egyptian.jp)
43:デフォルトの名無しさん
11/04/21 22:17:03.21
円記号
44:デフォルトの名無しさん
11/04/21 22:17:49.21
>>43
どう考えてもURLからしてロゼッタストーンです
本当にありがとうございました
45:デフォルトの名無しさん
11/04/21 23:07:35.97
>>42
うーん…
ピリオドが一文字を表してて、その繰り返しだからアスタリスクを使ったんだけど。
[^\n]は、[]の中は先頭が改行じゃ無いって事だとは解るんだけど。
[]で囲むのと、どれかに一致で、先頭が改行の時は除外するって事になるのかな。
最初、ピリオド・アスタリスクとしていたけど、アスタリスクの意味を理解して無かったって事かな?
46:デフォルトの名無しさん
11/04/21 23:29:26.29
アスタリスクの意味はあってるよ
文字クラスの理解が怪しい感じかな
URLリンク(ja.wikipedia.org)
ところで>>42で希望通りの動作になった?
47:デフォルトの名無しさん
11/04/21 23:30:45.33
[]で囲っている文字クラス内の^は先頭じゃなくて否定
.は任意の文字で通常は改行は含まれないがオプションなどで動作が変わる
.*は欲張りなマッチとか言われてて、とりあえず取れるとこまで進めてから
バックトラックしながらその後の条件があれば取捨選択していく
48:デフォルトの名無しさん
11/04/21 23:50:00.45
>>46
あ、スミマセン。
実験したのですが、何もヒットしないでした。
使ってる状況なんですが、TeraPadと言うテキストエディタの外部ツールのTpRegExpなんです。
なんか、正規表現が、こんなに方言化してると思わず、状況後出しに成ってるのが、申し訳ないです。
49:デフォルトの名無しさん
11/04/22 00:16:11.73
^が行頭じゃない環境なのか、じゃあこっちで
\f[^\n]*\\
一応リファレンスは調べてみたけど試してはいない。
これでだめだったら、いっそのこと別のエディタにしてしまったほうが楽な気がする
こっちの環境(Mery)だと
.*\\
でも希望通りの動作になるよ
50:デフォルトの名無しさん
11/04/23 05:36:55.82
どうもです。
望んだ動作に成りました。
この外部ツールが曲者なのかな。sakuraエディターだと、.*\\で望みの動作しました。
どうもでした。
毎回呪文を打ち込むのも面倒だなと、VBスクリプトでやろうとしたんだけど、挫折しました。
51:デフォルトの名無しさん
11/04/25 08:30:22.42
///
52:デフォルトの名無しさん
11/05/06 19:40:46.16
PHP の preg に関して質問です。URLリンク(www1.axfc.net)
php 4.4.9 だとマッチしますが、php 5.3.5 だとマッチしません。
何か原因がわかればご教示ください。よろしくお願いします。
53:デフォルトの名無しさん
11/05/06 20:58:11.44
Linux (CentOS) 上の PHP 5.1.6 だとマッチしました。
memory_limit は php5は 128M に、php4 は 32M にしています。
>>52 の OS は WindowsXP Home SP3 です。
54:デフォルトの名無しさん
11/05/06 22:05:22.99
mb入ってんの?
55:デフォルトの名無しさん
11/05/08 11:41:05.08
mbは有効になっています。
一応 php.ini です。 URLリンク(www1.axfc.net)
>>52 の aaaaaaaaa の部分を短くするとマッチします。
なんでかな…
56:デフォルトの名無しさん
11/05/09 17:22:10.19
なんだろうねぇ。
対象の文字列を減らすとマッチするのはこちらでも再現した。
なんだろうねぇ。。。。
57:デフォルトの名無しさん
11/05/09 17:41:43.51
適当だけどこれじゃまいか
URLリンク(jp.php.net)
58:デフォルトの名無しさん
11/05/09 17:51:47.67
ありがとうございます。それでした。
pcre.backtrack_limit=200000 で動くようになりました。
59:デフォルトの名無しさん
11/05/09 19:02:42.70
勉強になった。
なるべくその設定を変更せずにすむように心がけよう。
60:デフォルトの名無しさん
11/05/11 09:47:04.06
よろしくお願いします。
●正規表現の使用環境
PHP 5.2.9 (XAMPP 1.7.1)
●検索か置換か?
検索
●説明
入力文字が+、-、数字以外ならエラーを返す
●コード
preg_match("/^[+|-]*\d+$/g", $string)
(1行ごとに処理するので、/mは不要です)
●希望する結果
+100→○
-488→○
1024→○
*300→×
/200→×
Aaaa→×
ああ→×
61:デフォルトの名無しさん
11/05/11 10:06:04.62
[0-9\+\-]
(\+|\-)[0-9]
62:デフォルトの名無しさん
11/05/11 11:11:25.84
>>61
> (\+|\-)[0-9]
こちらを使用しました。意図した通りになりました。
正規表現に関係なく、素直に書いてみることが大事なんだと認識しました。
ありがとうございます。
63:デフォルトの名無しさん
11/05/11 11:13:41.25
A+10 ○
でもいいの?
64:デフォルトの名無しさん
11/05/11 12:38:21.59
突っ込みどころ満載だが
とりあえず (\+|\-) なんて書くくらいなら [\+\-] でいいだろ……
* 小数点や指数表記を考えない
* 最上位の桁が 0 の場合ははじく
* 符号のみの場合もはじく
って感じなら ^[\+\-][1-9]\d*$
65:デフォルトの名無しさん
11/05/11 13:17:27.58
>>62
>> (\+|\-)[0-9]
>こちらを使用しました。意図した通りになりました。
1024 → × になりませんか?
66:デフォルトの名無しさん
11/05/11 13:21:49.74
(\+|\-)?[0-9]+
67:デフォルトの名無しさん
11/05/11 14:11:09.38
回答により実装し、問題が分かってきましたので、本来欲しかった結果と合わせて再度質問します。
●正規表現の使用環境
PHP 5.2.9 (XAMPP 1.7.1)
●検索か置換か?
検索
●説明
入力された文字列のエラーチェックで使用します。
入力文字が+、-、数字以外ならエラーを返します。
●正規表現を確認したサイト
HiFi Regex Tester
URLリンク(www.gethifi.com)
●コード
if( !preg_match("/^(\+|\-)?[0-9]+$/", $string) ) {
エラー文生成
}
(1行ごとに処理するので、/mは不要です)
●希望する結果
○:エラーではない、×:エラーとなる
0→○
+0→○
-0→○
+100→○
-488→○
1024→○
/200→×
Aaaa→×
ああ→×
12+1→×
5-10→×
68:デフォルトの名無しさん
11/05/11 14:17:50.19
>67
^[-+]?\d+$
69:デフォルトの名無しさん
11/05/11 15:34:39.84
>>67
希望する結果にならなかった例を挙げない人だよね。
70:デフォルトの名無しさん
11/05/11 15:59:24.60
>>69
情報の小出しになっていることは認めます。
71:デフォルトの名無しさん
11/05/11 23:07:49.36
1→○
01→?
72:デフォルトの名無しさん
11/05/22 14:18:14.06
長い文字列から文字列を抽出したいんだけど、どうすれば簡単ですか?
122ch345673ch89
この文字列から2chと3chの間の文字だけを取得したいです
73:デフォルトの名無しさん
11/05/22 14:25:18.65
正規表現自体は2ch(.+?)3chとかだけど
実際にどう抜き出すかは使ってる言語やツール次第
74:デフォルトの名無しさん
11/05/22 14:32:36.53
>>72
(?<=2ch).*?(?=3ch)
75:デフォルトの名無しさん
11/05/22 14:32:52.41
>>73
VB.NETです
76:デフォルトの名無しさん
11/05/22 14:54:38.68
じゃあC#でも大丈夫だよね
正規表現は>>74のを使わせてもらった
using System;
using System.Text.RegularExpressions;
...
Match m = Regex.Match("122ch345673ch89", @"(?<=2ch).*?(?=3ch)");
Console.WriteLine(m);
34567
77:デフォルトの名無しさん
11/05/22 15:05:07.94
VBじゃないと読めないかもしれない
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim m As Match = Regex.Match("122ch345673ch89", "(?<=2ch).*?(?=3ch)")
If m.Success Then
'隊長!発見しましたぞ!
Console.WriteLine(m.Value)
End If
End Sub
End Module
78:デフォルトの名無しさん
11/05/22 15:50:24.68
隊長なごんだ。
79:デフォルトの名無しさん
11/05/23 10:39:22.11
aaa=bbb;ccc=ddd;eee=fff
という感じの文字列からcccの値dddを取得したいです。
dddは可変でその部分にはセミコロンとカンマは入ることはありません。
(セミコロンは区切りとしては使いますが値としては使いません。)
cccは最後に書かれてる場合もあり、その場合は、
上記のeee=fffのように最後にセミコロンがつきません。
そこで正規表現なんですが、
ccc=(.*?;|[^;\,]+$)
という感じにしました。
後方参照で()内の部分を取り出したとき、
ccc=ddd;のときは、「ddd;」といった感じにセミコロンつきで取得され、
ccc=dddのときは、「ddd」といった感じにセミコロンなしで取得されます。
ccc=ddd;のときでもセミコロンなしで取得したいのですが、
正規表現のみで可能でしょうか?
80:デフォルトの名無しさん
11/05/23 11:16:21.88
ccc=([^;,]*)
だけじゃだめなのかな?
先読み使えばこう書けるけど
ccc=(.*?(?=;)|[^;,]+$)
81:デフォルトの名無しさん
11/05/23 11:31:28.50
>>80
ありがとうございます!
>ccc=([^;,]*)
これでとることができました。
正規表現難しいです><
82:デフォルトの名無しさん
11/05/23 13:48:15.55
C#で以下のように書いた場合、これってASCIIコードをさすんだよね?
「\x○○」のところ。
str=@"[^\x00-\x22\x27-\x2D\x3A\-\x3B\x3F\x5B\x5D\x5E\x60\x7B-\x7D\x7F]+" ;
83:デフォルトの名無しさん
11/05/23 13:55:18.15
asciiなら、"[#$%&./0-9<=>@A-Z\\_a-z~]"と同等だね。
84:デフォルトの名無しさん
11/05/24 08:08:29.88
Perl互換表現の\wからアンダースコアをとったものの連続を表現
ようするに[0-9a-zA-Z]+と同等なことをしたいのですが
[\w^_]+とかでは動きませんでした
どう書くのが正しいのでしょうか?
[0-9a-zA-Z]+でもいいのですが後学のために教えてください
85:デフォルトの名無しさん
11/05/24 08:13:54.23
[0-9a-zA-Z]+
86:84
11/05/24 08:17:33.28
すみません自己解決しました
[\w][^_]+でたぶんいけました
スレ汚しすみません
87:デフォルトの名無しさん
11/05/24 08:22:48.26
それ間違ってるよ
場合によっては正しく判定してるように見えることもあるけど
本質的には正しくない
88:84
11/05/24 08:25:36.61
>>87
そうですね
色々値かえて@とか想定外のもの入れたらマッチしてしまいましたorz
89:デフォルトの名無しさん
11/05/24 08:58:22.69
つーかさ、[0-9a-zA-Z]+で完璧に条件満たしてるんだから
それ以外の書き方をしようとするのがそもそもの間違いだ
初心者の頃って、短く書くことが良いことで正しいとか勘違いしてる奴も多いけど
短く書くより分かりやすく書いた方が絶対いいから
まあ[0-9a-zA-Z]+を[a-zA-Z\d]+とするくらいなら、分かりやすさを損なってないからいいけどね
先読み、後読み使えば、\wから_除外したものの連続って表現も出来るけど
この程度のことに先読み、後読み使うなんて余りにも無駄すぎるので、
本当に分かってる奴は[0-9a-zA-Z]+か[a-zA-Z\d]+を使う
とりあえず、メタ文字として用意されているもの以外の文字集合はベタ書き、これ基本な
「5以外の数字」とかも\dから5を除外するのではなく[0-46-9]が一番良い
90:デフォルトの名無しさん
11/05/24 09:43:43.83
>>84
文字クラスのintersection(&&)が使える処理系なら [\w&&[^_]]+
91:デフォルトの名無しさん
11/05/24 10:28:01.22
後学のためっていってるのに説教垂れる奴はなんなんだ
92:デフォルトの名無しさん
11/05/24 11:15:05.61
後学のために、短くまとめることにこだわるより
分かりやすく書いた方が良いというアドバイスをしているのでは?
93:デフォルトの名無しさん
11/05/24 11:25:02.36
ところでa-zA-Z0-9の順番が一般的だけど、
なんで0-9が先にこないのか不思議。
n進数表記でも0からだし、ASCII char codesは0-9A-Za-zの順番だし、
なんか理由とかあるのかな?
94:デフォルトの名無しさん
11/05/24 12:21:01.67
alphanumeric
英数字
95:デフォルトの名無しさん
11/05/24 12:57:46.19
[^\W_]
\Wがあるならこんなふうに書けるけどちょっと分かりづらいよね
96:デフォルトの名無しさん
11/05/24 15:22:48.24
>>95
まさに逆の発想
97:デフォルトの名無しさん
11/05/24 16:51:40.00
読解性って大事だよね。
読解性犠牲にして短くしてもしょーがない。
誰が見ても、人目で何を意味してるか解る、それが一番大事。
98:デフォルトの名無しさん
11/05/24 17:21:52.95
その意見には同意だけど正規表現に限っては難読でもいいわ
そういうもんだし
そもそも読みやすさを求めるなら規約で正規表現禁止にするわ
99:デフォルトの名無しさん
11/05/24 17:51:31.12
> そういうもんだし
君にとってはそうなのかもしれないし、個人的にどう思ってようと勝手だけど
世間的にはそういう認識ばかりじゃないので、主観で断定するのは良くない
100:デフォルトの名無しさん
11/05/24 17:56:10.91
世間的にはそういう認識ばかりだと思いますよ
実際コーディング規約で禁止にしてるところは多い
理由は複雑だから
101:デフォルトの名無しさん
11/05/24 17:58:40.47
そういう奴等は、コンピュータなんて複雑なものには一切かかわらないようにしたほうがいいね。
やめちまえ。
102:デフォルトの名無しさん
11/05/24 17:59:15.17
そうでもないか
103:デフォルトの名無しさん
11/05/24 17:59:25.70
(?#comment) とか x オプションで空白無視させたり、
見やすくする方法は色々あると思うけどな
104:デフォルトの名無しさん
11/05/24 18:44:42.90
\Wは、半角文字(#$%&など)にしかマッチしないことがある
[^a-zA-Z_0-9]だと「いろは」とか「阿伊宇」にもマッチするのに
\Wだと「いろは」とか「阿伊宇」にマッチしない
ということはと思って試してみたら、
[^\W_]+が、「いろはabc阿伊宇」の全体にマッチした
[a-zA-Z0-9]+だと、当然「abc」にしかマッチしないけどね
まあ俺が作ったプログラムではなく、他人が作った物での話だけどね
105:デフォルトの名無しさん
11/05/25 18:14:45.81
正規表現や三項演算子が業務で禁止されてる表向きの理由は複雑だからだけど、
文字列解析やif-else switch文でダラダラ書いたほうが、
コード量を稼げるからという裏向きの理由もあるんだな。
106:デフォルトの名無しさん
11/05/25 20:16:36.23
20年位前ならそうかもね
107:デフォルトの名無しさん
11/05/25 22:37:29.83
>>105
ひどいなそれは…
108:デフォルトの名無しさん
11/05/25 23:22:56.81
こんばんは、質問させてもらいます
マッチさせたい対象文字列が18xgameとあった場合に、
fps18xgameというのがマッチしてしまいます
このfpsという部分だけを除外させてマッチさせるには、どう打ち込めばいいのでしょうか?
pc18xgameとか、エロゲ18xgameとかがあった場合は、マッチさせたいので、この「fps」だけを除外したいのです
どうかよろしくお願いします
109:デフォルトの名無しさん
11/05/25 23:40:59.36
否定後読み
110: 忍法帖【Lv=1,xxxP】
11/05/26 04:03:00.84
>>109 遅れました。返信ありがとうございます。ルールの名前があると、
探しやすくて助かりました。
111:デフォルトの名無しさん
11/05/26 12:54:22.56
否定後読みの説明があるようなところだと他のもいろいろ載ってていろいろ勉強になると思う
がんばれ
112:uy
11/05/27 17:00:13.06
本気でがんばれば正規表現だけで言語処理系の字句解析部分を書けそうな気がするんだけど
やってる奴いない?
113:デフォルトの名無しさん
11/05/27 17:25:25.97
本気も何も、字句解析をtokenizationの意味で言ってるのだとしたら当然できる。
正規表現ってもともとそこに来歴があるし。
flexのinfoは日本語訳もあるから読んでみたら?
114:デフォルトの名無しさん
11/05/27 17:33:24.61
複雑さによるんじゃない
正規表現は万能じゃないしな
115:デフォルトの名無しさん
11/05/27 17:43:07.30
確かFORTRANがいやらしい。
116:デフォルトの名無しさん
11/05/27 17:45:07.48
(COBOL) ///
117:デフォルトの名無しさん
11/05/27 21:11:38.19
言語処理系の字句解析って、形態素解析のこと?
特徴抽出やかな漢字変換には使えないよ。
形態素解析も正規表現でしたのは手軽だけど問題だらけ~
118:デフォルトの名無しさん
11/05/27 21:11:40.85
FORTRANやCOBOLにも正規表現あるんか?
どっちももう10年以上は見てないなぁ
119:uy
11/05/27 21:14:08.29
>>113
できるんだ、じゃあこれを正規表現で字句解析かくとどうなる?
#include <stdio.h>
struct A {
int x;
}a;
int main(){
return(0);
}
120:デフォルトの名無しさん
11/05/27 21:14:21.79
COBOLは今でも銀行系で仕事あるんだよね~
10年単位で拘束される案件なんだけど、興味ある?
121:デフォルトの名無しさん
11/05/28 00:55:28.05
●正規表現の使用環境
Apache RewriteRule
●検索か置換か?
検索
●説明
1~5つのカンマ区切りの単語を一致させたい
連結数は不定
●対象データ
apple
apple,orange,pineapple,grape,melon
orange,pineapple,melon
●希望する結果
○apple
○orange,pineapple,melon
× ,apple
不定数連結されたパターンに悩んでいます
122:デフォルトの名無しさん
11/05/28 01:02:35.63
^(([^,\n]+),?)+$
123:121
11/05/28 01:12:38.70
>>122
こちらの希望結果が説明不足でした。
せっかくレス下さったのに申し訳ないです。
●希望する結果(追加)
× apple,
△apple,pineapple/peach ・・・ /peachの手前まで一致
五つの単語以外は一致しないようにしたいのです。
お手数おかけします。
124:デフォルトの名無しさん
11/05/28 04:03:59.55
>>121
たかだか4個までのカンマを含むアルファベットならびに
一致するという意味かな?
125:デフォルトの名無しさん
11/05/28 04:16:19.58
先頭と最後はカンマであってはならないという条件も付くか。
126:デフォルトの名無しさん
11/05/28 04:19:01.64
多分カンマが連続してもいけないんだろうな。
127:デフォルトの名無しさん
11/05/28 05:15:52.64
^(\w+)(?:,(\w+)){0,4}$
128:デフォルトの名無しさん
11/05/28 05:17:18.27
> △apple,pineapple/peach ・・・ /peachの手前まで一致
^(\w+)(?:,(\w+)){0,4}
129:デフォルトの名無しさん
11/05/28 05:28:17.49
>>123
> 五つの単語以外は一致しないようにしたい
apple
orange
pineapple
grape
melon
限定でいいのね?重複は許可するの?
否定先読みとか使えれば何とかなりそうだけどどうなんだろ
130:デフォルトの名無しさん
11/05/28 08:52:51.42
5回IF文をかませるとか、
SELECT CASE文で分岐するとか、
そういう実装ではダメなのでしょうか?
131:デフォルトの名無しさん
11/05/28 09:24:11.50
^((apple|orange|pineapple|grape|melon),)*(apple|orange|pineapple|grape|melon)(?!,)
ながい
132:デフォルトの名無しさん
11/05/28 09:27:00.77
エスパー的にこれとみた
[a-zA-Z]+(?:,[a-zA-Z]+){0,4}
133:デフォルトの名無しさん
11/05/28 10:25:47.90
>>131
せっかく長くしても、apple,melonsoda → apple,melonにマッチ
しちゃうから、\bを入れるか(?![,a-zA-Z])にした方が良いのかも
^((apple|orange|pineapple|grape|melon),)*(apple|orange|pineapple|grape|melon)\b(?!,)
^((apple|orange|pineapple|grape|melon),)*(apple|orange|pineapple|grape|melon)(?![,a-zA-Z])
134:131
11/05/28 10:29:24.27
なるほど、気付かんかった
135:デフォルトの名無しさん
11/05/28 12:12:17.95
エロサイトかアフィサイトのアレか
136:121
11/05/28 13:34:52.46
>>124-126
そうです。説明不足しすぎですね・・・
>>129
重複しても問題ないです。
>>130
難しい状況です・・・。
137:121
11/05/28 13:38:50.15
>>128,131,132,133
今、手元に環境がないので確認出来ませんが試してみます
ありがとうございます!!
138:デフォルトの名無しさん
11/05/28 21:05:05.25
>>133
melonsoda、ワラタ センスありますね
139:デフォルトの名無しさん
11/05/31 16:51:50.50
http:// が入っていない文章にマッチさせるにはどう書けばいいですか?
POSIX又は拡張POSIXでお願いします
140:デフォルトの名無しさん
11/05/31 20:37:43.77
POSIXはよくわからんけど、とりあえず
^((?!http://).)*$
141:デフォルトの名無しさん
11/06/01 00:00:21.37
URLリンク(www.kt.rim.or.jp)
142:デフォルトの名無しさん
11/06/01 03:30:06.43
>>141
(((((((((([^t]*)*(t+[^t][^t]*)*)*)*(t+[^p][^t]*)*)*)*(t+[^:][^t]*)*)*)*(t+[^/][^t]*)*)*)*(t+[^/][^t]*)*)*
このスレのレス全部あぼーんしたw
143:デフォルトの名無しさん
11/06/01 04:23:56.92
>>142
滅茶苦茶な正規表現力だな
144:デフォルトの名無しさん
11/06/05 05:10:16.10
(本文が長すぎるというメッセージが出るので2つに分けています)
●正規表現の使用環境
ActionScript 3.0
●検索か置換か?
検索
●説明
文字列の先頭が「プラス符号かマイナス符号か数字か」と
末尾が「数字か」でBoolean判定を行いたい。
●対象データ
1.2345 +123.45 -3.1245 青3.1245 3.1245赤
●希望する結果
1.2345→true +123.45→true -3.1245 → true 青3.1245→false 3.1245赤→false
145:デフォルトの名無しさん
11/06/05 05:14:14.02
^[-+0-9].*[0-9]$
146:144
11/06/05 05:15:57.11
続き)
試したコードは下記です。
var patt0 = new RegExp("^(\d|[-]|[+])");//先頭部分の判定
var patt1 = new RegExp("\d$");//末尾
if (patt0.test(str0) == true && patt1.test(str0) == true) {
//trueと出力
} else {
//falseと出力
}
最初と最後の文字のみに注目しているのでフラグ("g"など)は無しにして
いますが、上の記述だと 1.2345 でもfalseが出力されます。
どう変えれば良いでしょうか?
因みに、ActionScriptはJavaScriptと同じECMAスクリプトを起源にしています。
(正規表現も共通点が多いようです)
147:144
11/06/05 05:28:11.19
>>145
光の速さでレス有難うございます。
動作OKでした。
148:デフォルトの名無しさん
11/06/09 05:36:32.37
戻り読み条件が、長さ固定でないとダメなのって
なんでなのかな?そんな難しいことなの?
149:デフォルトの名無しさん
11/06/09 09:59:11.59
>>148
何でだろうね。
Perlなら\Kでできるけど。
150:デフォルトの名無しさん
11/06/09 12:17:45.37
>>148
正規表現を実装することを考えればわかると思うけど試行回数がとんでもない数になる
151:デフォルトの名無しさん
11/06/09 17:06:40.09
なんで?
ふたつの正規表現が、並んでるか並んでないかだけの話じゃないの?
152:デフォルトの名無しさん
11/06/09 19:04:29.76
エンジンにもよるだろうけど戻り読みの場合は右から左にマッチさせていくため
バックトラックの回数が多くなって難しいんじゃない
URLリンク(practical-scheme.net)
たしかフクロウ本にも戻り読みの動作について説明されてたと思うから
興味があれば引いてみては
153: 忍法帖【Lv=7,xxxP】
11/06/09 21:13:43.74
主旨から外れますが、
>>149の言うように「perlは正規表現から始まった」という印象がありますが、
実際、perlは正規表現については今でも特異な地位(優位性)を持っているのでしょうか?
Java、PHPを業務で触ってきましたが、perlはまだなので気になっています。
154:デフォルトの名無しさん
11/06/09 22:03:53.58
>>149言ってないし
155:デフォルトの名無しさん
11/06/09 22:14:09.55
perlに優位性は特にないけど
perl風に実装することにはあるんじゃないかな
156:デフォルトの名無しさん
11/06/10 15:19:21.28
●正規表現の使用環境
PHP 5.1
●検索か置換か?
検索
●説明
角括弧が対応する始点から終点までをすべて抽出したいです。
●対象データ
[[hoge:f1=piyo,f2=fuga]foobar[[hogera:]]baz][[qux:a=xyzzy]]
●希望する結果
ほげ[[hoge:f1=piyo,f2=fuga]ふが[[hogera:]]ぴよ]ほげら[[foo:]ぴよぴよ][[qux:a=xyzzy]]
1^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2^^^^^^^^^^^^^^^3^^^^^^^^^^^^^^
ご教授よろしくお願いします。
157:デフォルトの名無しさん
11/06/10 15:21:25.44
対象データが誤ってました。すみません。下記の通りです
●対象データ
ほげ[[hoge:f1=piyo,f2=fuga]ふが[[hogera:]]ぴよ]ほげら[[foo:]ぴよぴよ][[qux:a=xyzzy]]
158:デフォルトの名無しさん
11/06/10 15:26:20.46
URLリンク(oshiete.goo.ne.jp)
こういうこと?
159:デフォルトの名無しさん
11/06/10 17:59:09.73
括弧の入れ子はイヤズラ
()
160:デフォルトの名無しさん
11/06/10 18:55:08.22
>>156
\[((?>[^[\]]+)|(?R))*\]
161:デフォルトの名無しさん
11/06/11 04:56:57.88
>>159
> 括弧の入れ子はイヤズラ
> <hr>
> ()
になってんだけどどうなってんの?
ノtasukeruyoみたいな。
162:デフォルトの名無しさん
11/06/11 09:27:21.26
忍法帖関係でその時間帯にbbs.cgiの変更やってたせいじゃないかな
163:デフォルトの名無しさん
11/06/11 10:02:14.73
なるほど
㌧
164:デフォルトの名無しさん
11/06/12 05:57:20.48
javascriptの正規表現って、改行で終わる文字列の終端に行頭がマッチしちゃうのか
変なの
165:デフォルトの名無しさん
11/06/12 21:55:15.07
>>160
報告遅くなりましたがそれでできました!ありがとうございます。
166:デフォルトの名無しさん
11/06/14 19:24:59.26
おしえてください
●正規表現の使用環境
perl
●検索か置換か?
置換
●
これはどういう置換でしょうか
$salt =~ s/[^\.-z]/\./go;
167:デフォルトの名無しさん
11/06/14 19:42:08.00
166
自己解決しました。
'.'(0x2e)から'z'(0x7a)までの文字以外の文字は'.'(0x2e)にするのですね
168:デフォルトの名無しさん
11/06/15 19:57:29.96
よろしくお願いします
●正規表現の使用環境
PHP
●検索か置換か?
置換
●説明
いくつか連続した\nを、すべて<br />に置換
●対象データ
\n
\n\n\n
(連続数は1~n)
●希望する結果
<br />
<br /><br /><br />
169:デフォルトの名無しさん
11/06/15 20:00:46.86
それはもうエディタの検索置換機能でいいのではまいか…
170:デフォルトの名無しさん
11/06/15 20:04:53.35
>>169
DB上に入ってる文字列データをHTMLとして出力するのに使いたいんです・・・
171:デフォルトの名無しさん
11/06/15 20:05:26.01
うん、いま気づいた。ごめん
str_replace("\n", "<br />", $src);
172:168
11/06/15 20:19:42.53
提示した条件がちょっと違うようで、
もうちょっと複雑にパターンを考えなきゃいけないようでした。
すぐに説明するのが難しいので一度出直してきます。
お手間取らせて申し訳ないです。
173:デフォルトの名無しさん
11/06/15 20:41:36.48
何故わざわざ「連続」というのかサッパリ分からん。
174:デフォルトの名無しさん
11/06/15 20:52:49.25
PHPならnl2brで良いと思うのだが・・・
175:デフォルトの名無しさん
11/06/15 22:01:34.54
もしかしてこういうことなんかな?w
str_replace('\n', "<br />", $s)
176:デフォルトの名無しさん
11/06/16 22:37:16.72
言語:JAVA
次の例文で、[ ]の部分にひらがなの「ぺ」が27回続く場合にのみマッチする正規表現
ゆうていみやおうきむこうほりいゆうじとりやまあきら[ ]
処理対象文字
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺぺぺぺ
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ
実行した正規表現
.*ぺ{27}
実行結果
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ
何で27回以外の「ぺ」が出力されるのか訳ワカメちゃん
177:176
11/06/16 22:39:33.33
あああああああああああああああああああ
すいません。
そりゃ
.*ぺ
に「ぺ・・・」が含まれるからだよね。
ほんとすいまぺぺぺぺぺぺぺ
178:デフォルトの名無しさん
11/06/16 22:56:49.13
処理対象文字の三番目のが27個だと思ったら違った
ひどいいじめだ
179: 忍法帖【Lv=11,xxxPT】
11/06/16 23:20:40.01
ロトの剣で我慢しましょう
180:デフォルトの名無しさん
11/06/17 01:19:28.83
巨大なファイルとか、一度に全部変数に読み込みたくない場合
正規表現に途中までマッチしたとか、もうちょっと食わせれば完全に
マッチするとか知ることできれば便利だと思うのですがそのような方法はありますでしょうか?
181:デフォルトの名無しさん
11/06/17 05:08:04.43
> もうちょっと食わせれば完全にマッチする
エスパーな小人をパソコンにいれるとか。
182:デフォルトの名無しさん
11/06/17 07:06:16.71
java.util.regex.MatcherのhitEnd(), requireEnd()とか、PCREのpartial matchingとか?
183:デフォルトの名無しさん
11/06/17 16:27:44.21
●正規表現の使用環境
Visual Basic Script
●検索か置換か?
置換
●説明
タイトルを抜き出して一行目の先頭に書き入れたい
●対象データ
誤爆防止のため、書き込みは移行しました<h1 id="topic_title"><strong><span class="subj">2ちゃんねるたかじんのそこまで言って委員会</span></strong></h1>
1:<strong><span class="name"> </span></strong>
:
<p class="date">2011/04/16 (Sat) 15:38:46</p> </dt>
<dd>
2ちゃんねるマスコミ板スレッド「たかじんのそこまで言って委員会
●希望する結果
2ちゃんねるたかじんのそこまで言って委員会
1: :2011/04/16 (Sat) 15:38:46
2ちゃんねるマスコミ板スレッド「たかじんのそこまで言って委員会
184:デフォルトの名無しさん
11/06/17 20:52:22.93
とりあえずタイトルだけ抜き出し
^.*<.*"topic_title">(<[^>]*>)*([^<]+).*$
\2
185:デフォルトの名無しさん
11/06/17 21:31:35.38
>>184
URLリンク(lavianrose.s56.xrea.com)
URLリンク(lavianrose.s56.xrea.com)
URLリンク(lavianrose.s56.xrea.com)
うまくいきませんでした、もしかしたらこちらで何かミスをしてるかもしれません。
正規表現を少し削ってみたりしたけどこちらの勉強不足で判断できませんでした。
186:デフォルトの名無しさん
11/06/17 21:38:57.91
検索パターン
^.*<.*"topic_title">(<[^>]*>)*([^<]+).*$
置換文字列
\2
これでもダメ?
187:デフォルトの名無しさん
11/06/17 22:23:44.19
>>186
VBscript内で
repText5 = "\2"
objRep.Pattern = "^.*<.*"topic_title">(<[^>]*>)*([^<]+).*$" ←---★
newText = objRep.replace(newText, repText5)
objFile.Close
' 書き込み
Set objFile = objFSO.CreateTextFile(var1,2,false)
objFile.WriteLine (newText)
って正規表現入れたんですが★の行でステートメントの末尾が不正です。
と、恐らくダブルクォート関連のエラーがでてしまって
実際のプログラム上ではどう動くかまだ実験できてないんです、すみません。
str ="^.*<.*"topic_title">(<[^>]*>)*([^<]+).*$"
objRep.Pattern = str
とかもしてみたんですけど、ちょっと時間掛かりそうです
188:デフォルトの名無しさん
11/06/17 22:40:43.32
>>187
objRep.Pattern = "^.*<.*""topic_title"">(<[^>]*>)*([^<]+).*$"
189:デフォルトの名無しさん
11/06/17 23:20:38.04
>>188
--------------結果---------------------------
\2
1:<strong><span class="name"> </span></strong>
:
<p class="date">2011/04/16 (Sat) 15:38:46</p> </dt>
<dd>
2ちゃんねるマスコミ板スレッド「たかじんのそこまで言って委員会
--------------ここまで---------------------------
まだよくわかってないんですが
もしかして、\2のところにタイトル文の
2ちゃんねるたかじんのそこまで言って委員会
は代入されないですか?
190:デフォルトの名無しさん
11/06/18 00:04:08.75
\2じゃなくて$2じゃね?
191:デフォルトの名無しさん
11/06/18 00:14:58.63
>>190
うおおおおおおお
すごいいいいいい
正規表現って変数に入れられるんですね
うまくいきました!
ありがとうございました!
192:デフォルトの名無しさん
11/06/18 19:08:41.62
URLリンク(github.com)
Onigmo is a regular expressions library forked from Oniguruma.
だそうだ。perlの名前参照とか\R,\Kなどが使えるようになってるっぽい。
193:デフォルトの名無しさん
11/06/20 00:12:52.55
正規表現がいまいち苦手だ。
194: 忍法帖【Lv=13,xxxPT】
11/06/20 01:05:13.35
test
195:デフォルトの名無しさん
11/06/20 06:38:00.21
>>192
鬼車の開発がRuby作者との揉め事以降、止まってたから
開発を引き継ぐ人が現れたには大きいね
ところで\Rや\Kってどういうメタ文字なの?
Googleは記号や大文字が検索できないからググってもよくわからないんだ
196:デフォルトの名無しさん
11/06/20 06:49:41.88
perlの正規表現はperlreでググればよい。
URLリンク(perldoc.perl.org) 最新(5.14)英語版
日本語訳の最新版は5.9.5か?
\RはCRLFを含めた改行1つにマッチ。
\Kは戻り読みとほぼ同等。ただし可変長が使える。
197:デフォルトの名無しさん
11/06/20 09:54:21.05
>>195
Rubyと揉めてたのって2007年頃では?
鬼車の最終更新は2010/01/09
198:デフォルトの名無しさん
11/06/20 10:22:41.55
正規表現ってすげぇ難しいよな
どっかに例題つきのわかりやすいサイトとかってないのかな
2chのdatファイル整形とか掲示板のhtml整形とかやりたいんだけど
例えば<br>か</br>までとか複数細かくやりたいときとか多くて勉強したいんだよな、興味深いし
199:デフォルトの名無しさん
11/06/20 11:42:16.31
サイトは腐るほどあるけど、正規表現の実装も沢山あってどのサイトを見ていいか解らん
200:デフォルトの名無しさん
11/06/20 14:33:01.04
●正規表現の使用環境
VBScript
●検索か置換か?
検索
●説明
URLリンク(upload.jpn.ph)とんこつ.zip
だけを変数に入れて、後で変数を利用したい
●対象データ
</style>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=URLリンク(upload.jpn.ph)とんこつ.zip">
</HEAD>
●希望する結果
適当な変数=URLリンク(upload.jpn.ph)とんこつ.zip
例:もし変数 var5 とかにとんこつ.zipを代入できるなら
WScript.Echo var5
としたときにURLリンク(upload.jpn.ph)とんこつ.zip
と出力できるようにしたいです。
もし上手く説明できてなかったらごめんなさい。
よろしくお願いします。
201:デフォルトの名無しさん
11/06/20 14:36:34.81
正規表現でがんばるよりXMLとしてスクレイピング可能なら、
素直にスクレイピングしたほうがいいように思うけどねぇ。
202:デフォルトの名無しさん
11/06/20 15:06:12.81
自分では
(http:\/\/[\x21-\x7e]+)
で抜き出してみたんだけど、そうすると
"> まで$1に変数としてはいっちゃうんだ
203:デフォルトの名無しさん
11/06/20 15:50:58.65
>>202
ウソつけ
それじゃ対象データに対して取得できるのは
URLリンク(upload.jpn.ph)
までだろ
とんこつ.zipが入らん
(http:\/\/[^"]+) とでもしとけ
VBSだと " → "" か \x22
204:デフォルトの名無しさん
11/06/20 15:57:52.77
>>203
すごいです!
ありがとうございます。
今回のでもの凄く正規表現の参考になりました!
205:デフォルトの名無しさん
11/06/20 18:27:04.93
>>201
質問内容からして、厳密なマッチは望んでないんでね?
URLだって本来はRFCの定義までさかのぼって考える必要があるものだが
自作ツールなら多少適当でも十分役立つことが多いし
206:デフォルトの名無しさん
11/06/20 21:58:58.58
>>197
鬼車の開発は実質2007年に止まったようなものだよ。
207:デフォルトの名無しさん
11/06/20 23:33:30.26
>>198
定番だがいろいろなサイト回るよりフクロウ本買って読んだほうが手っ取り早い
それなりの大学図書館なら置いてあるからお金が無いなら借りるって手もある
208:デフォルトの名無しさん
11/06/20 23:42:21.14
フクロウ本を読んだら
プログラマの危ない会話
スレリンク(prog板)
で、正規表現ネタを一発かます
これで一人前
209:デフォルトの名無しさん
11/06/21 00:25:48.31
>>207
大学図書館って誰でも入れるの?
210:デフォルトの名無しさん
11/06/21 00:31:31.50
入れるところの方が多いんじゃね?
211:デフォルトの名無しさん
11/06/21 00:41:06.85
ネットの国会図書館で見られるやつにしてよ
212:デフォルトの名無しさん
11/06/21 00:43:08.68
学歴とか年齢とか風貌とか関係なく?
入り口の守衛のとこで身分証明証が必要だったり記入したりする事無いの?
一度大学ってものを見学してみたい。
213:デフォルトの名無しさん
11/06/21 01:08:46.20
うわ、高卒乙
214:デフォルトの名無しさん
11/06/21 02:21:15.61
俺が学生だった頃は、徒歩で入ってくる奴は誰でもわからんかったけど
今は学生証はICカードだし、監視カメラで顔識別・虹彩認証されて
関係のない人間はレーザーで焼き殺されるから、気をつけろよ>>212
215:デフォルトの名無しさん
11/06/21 02:35:49.32
>>213
中卒……。
>>214
レーザーでローストされるのは嫌だ
やっぱ行くのやめとく
216:uy ◆yyC0rYWEq2
11/06/21 04:57:05.12
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙うわ、中卒乙
うわ、中卒乙うわ、中卒乙
うわ、中卒乙
うわ、中卒乙
うわ、中卒乙
うわ、中卒乙
うわ、中卒乙
うわ、中卒乙
217:デフォルトの名無しさん
11/06/21 07:04:27.15
国公立はたいてい自由に使える(だいたい入り口で名前と目的を書かされる、ぐらい。
「研究」と書けばおk)。私立だとダメだったり地元民に限ってたりすることも多くて、
自分の所属機関か地元の図書館からの一筆を要求されたりする。
あと図書館とは関係なく大学の出入りは最近チェックがやかましいので、
入構するときに持たされる確認証を図書館でチェックされることがあるので、
無理して潜り込もうとしないほうが無難。
218:デフォルトの名無しさん
11/06/21 07:05:45.66
あー、自由と言っても閉架への立ち入りとか計算機の利用とかは制限あるかも。
219:デフォルトの名無しさん
11/06/21 18:36:48.13
うちの大学図書館は学生しか立ち入れない部屋とかはあるけど一般にも公開していたかな
今はどうか知らんが通ってた頃は学食とかにリーマンとかも混ざって食事していた
220:デフォルトの名無しさん
11/06/24 23:27:08.46
●正規表現の使用環境
grepとかegrepとか
●検索か置換か?
検索
●説明
a,nの2文字のみが含まれる行を検索したい
●対象データ
aaa
ann
nana
anana
sin
anans
●希望する結果
上4つのみ出力
下二つは引っかからない
221:デフォルトの名無しさん
11/06/24 23:33:00.00
^[an]+$
222:デフォルトの名無しさん
11/06/24 23:38:03.82
>>221
ありがとうございます
できました
223:デフォルトの名無しさん
11/06/28 22:21:04.59
●正規表現の使用環境
jane?
●検索か置換か?
置換
●説明
文字レスを排除したい
スレリンク(kao板)
このスレの文字レスのみを排除してAAだけを表示させる事は出来ますでしょうか?
224:デフォルトの名無しさん
11/06/28 23:40:45.09
これは正規表現に対する挑戦なのであろうか
それはともかく、AAかわいいね
225:デフォルトの名無しさん
11/06/28 23:42:57.50
ズバリ、無理でしょう。
多少の誤爆覚悟で、1~3行のレスを排除する、くらいか。
226:デフォルトの名無しさん
11/06/29 00:10:46.88
お題もスレ趣旨も棚上げするけど
そのスレの332の本文でレス抽出すれば割りと希望の状態になるはず。
227:デフォルトの名無しさん
11/06/29 00:19:07.06
" | " だな
228:デフォルトの名無しさん
11/06/29 00:21:13.83
それだけで一つのテーマになりそうなお題
ベイジアンフィルタとか使ってみるか?w
229:223
11/06/29 00:46:23.81
皆様レスありがとうございます!
うーんやっぱり難しいというか、こりゃ無理ですねw(汗
ただ、全角スペース3個並びを抽出したり
" | "を抽出する、でかなり理想通りになりました
アドバイスありがとうございました!
230:デフォルトの名無しさん
11/06/29 07:56:09.29
正規表現でAAあぼ~ん
スレリンク(tech板)
231:デフォルトの名無しさん
11/06/29 16:36:55.29
<(.*)>を取得したいのですが
<aiueo>
<aiueo<kakikukeko>
これはaiueo kakikukekoの2つを取得したいのですが
このままだと
aiueoとaiueo<kakikukekoが取得されてしまいます
どうしたらいいでしょうか?
232:デフォルトの名無しさん
11/06/29 16:50:07.50
<([^<]+)>
* のほうが都合よければそっちで。
233:231
11/06/29 17:12:48.09
ありがとうございます!
動きました
意味が分からないので調べタイと思います
234:天使 ◆uL5esZLBSE
11/07/06 02:51:45.56
-----
[[[[[ <(.*)>を取得したいのですが ]]]]](キリッ!キリッッ!!!!キリッッッ!!!!
----
[[[[[[[ <aiueo<kakikukeko> ]]]]]]](キリッッ
----
[[[[[[ これはaiueo kakikukekoの2つを取得したいのですが ]]]]]](キリ!!!!キリッッッッ!!!!キリきリッッ!!!キリッ
--
[[[[[[[ aiueoとaiueo<kakikukekoが取得されてしまいます ]]]]]]](キリッッッッ!!キリッッッ!キリキリッ
----
[[[[[[[[ どうしたらいいでしょうか? ]]]]]]]](キリッッッ!キリッッッッ!キリッッッッ!!
---------------(キリ
235:デフォルトの名無しさん
11/07/06 08:24:21.91
引用してるつもりなのかな
236:デフォルトの名無しさん
11/07/06 21:09:55.97
英数字プラスセミコロンはとれるのですが英数字の桁数が{3}をつけてもうまくいかず悩んでいます。
●正規表現の使用環境
VBA
●検索か置換か?
検索
●説明
対象データのフォーマットチェックをしたいです
A01;B02;C03;…
英数字3桁がセミコロンで区切られたデータに対して様式通りならtrueを返します
一番最後にはセミコロンはつきません
●対象データと希望する結果
A01;B02;C03 →true
A01;B02;C03; →false
A01;B092;C03 →false
237:デフォルトの名無しさん
11/07/06 21:18:35.73
([A-Z]\d\d;)*[A-Z]\d\d でどうだろう
238:デフォルトの名無しさん
11/07/06 21:32:14.23
ええと、セミコロン以外は半角英数字3文字なので、
901;B02;C3J
といったものでもtrueにしたいのです。
239:デフォルトの名無しさん
11/07/06 22:03:51.96
^([a-zA-Z0-9]{3};)*([a-zA-Z0-9]{3})$
ながい
半角英数で一文字で表現できたっけ?
240:デフォルトの名無しさん
11/07/06 22:06:45.25
×半角英数で一文字で表現できたっけ?
○半角英数って一文字で表現できたっけ?
241:デフォルトの名無しさん
11/07/06 22:07:41.42
\wは_が入っちゃうからなあ
[:alnum]とかないことはないけど使ったことが無い
242:デフォルトの名無しさん
11/07/06 22:16:09.56
後半のカッコ削って [0-9] を \d にして別クチで IgnoreCase にするぐらいかな。
\w は指摘出てるし環境的に [:alnum:] も使えないみたい。
243:236
11/07/06 22:27:43.30
即レス有難うございます。
([a-z0-9]{3};)*([a-z0-9]{3})と考えていたんですがこれだと
001;002;003;0084でもTrueになってしまって困っていました。
^$入れると変わるんですね。。。
244:デフォルトの名無しさん
11/07/08 15:07:14.12
よろしくお願いします。
●正規表現の使用環境
JavaScript
●検索か置換か?
検索
●説明
xという文字から、xという文字までの取得
ただしyxというパターンが含まれている場合は飛ばして、次のxを探す
x((?!yx).)*xを試しましたが、途中で検索が打ち切られて思うようになりません
●対象データ
"ab\"c",'def'
●希望する結果
"ab\"c"
245:244
11/07/08 15:09:19.28
すみません追記です
検索表現にgをつけて使用します
while(a = /reg/g.exec(str))~のようにして
246:デフォルトの名無しさん
11/07/08 16:51:20.14
C++ boost の正規表現なのですが、質問です。
hoge="3"
fuga="5"
という文字列があったとき".*"でマッチしたところ、"3","5"という結果でした
サルにもわかる正規表現入門では、.*というのは、可能な限り合致するものまで繋がる
と書いてあったので、"3"fuga="5"とマッチされる気がするのですが、
なぜこうなるのでしょうか?
247:デフォルトの名無しさん
11/07/08 16:58:00.90
ドットは改行にはマッチしないからじゃまいか
外してるなら周辺コードも貼ると答えやすい
248:デフォルトの名無しさん
11/07/08 17:41:26.86
>>246
match_not_dot_newline
249:246
11/07/08 18:24:28.65
なるほど・・・改行か、調べが甘かったです。確かに改行のせいでした。
247-248さん
ありがとうございました。
250:デフォルトの名無しさん
11/07/08 21:24:59.44
>>244
x.*(?<!y)x
か
x.*?(?<!y)x
javascriptはわからん
251:デフォルトの名無しさん
11/07/08 22:29:59.64
>>244
"(.*[^\\])?"
252:デフォルトの名無しさん
11/07/08 23:48:40.84
>>244
エスケープありのダブルクォート文字列: "(?:\\.|[^\\"])*"
さらに改行のエスケープも認めない: "(?:\\.|[^\\"\n])*"
253:デフォルトの名無しさん
11/07/09 00:29:29.23
>>244
"(.*?[^\\])?"
254:244
11/07/09 02:56:37.06
>>250-253
回答ありがとうございました
試してみた結果、x.*(?<!y)xはjs非対応っぽいです
"(.*?[^\\])?"だと、"abc" + "def"という表現を全部取得しちゃう(これは>>244の例が悪かったです。すみません。"でくくった文字列を取得したいと書けばよかった)
"(?:\\.|[^\\"])*"は望みの動作でした。\\.で、エスケープされた文字を表現するんですね
255:デフォルトの名無しさん
11/07/10 01:39:13.22
質問失礼します。
URLリンク(stocks.finance.yahoo.co.jp)
.
.
.
<td>2011年6月30日</td>
<td>3,010</td>
<td>3,050</td>
<td>2,986</td>
<td>3,030</td>
<td>8,376,600</td>
<td>3,030</td>
.
.
このページのソースから正規表現で、下記のように日付と株価の部分だけ抜き出すにはどうしたらよいでしょうか?
2011年6月30日
3,010
3,050
2,986
3,030
8,376,600
3,030
.
.
.
.
言語はRubyで、([^<>]+)などで色々やってみましたが、どうにもうまく抜き出せません。
また、webのHTMLから、正規表現である程度特定して文字列を抜き出し、
その特定して抜き出した文字列に再度正規表現で、文字列を特定していくという
方法は可能でしょうか?
よろしくお願いします。
256:255です。
11/07/10 01:44:18.09
よろしくお願いします。
●正規表現の使用環境
Ruby
●検索か置換か?
検索
●説明
株価のみを抜出し、DBに入れていく予定でいます。
●対象データ
URLリンク(stocks.finance.yahoo.co.jp)
のソースから
●希望する結果
2011年6月30日
3,010
3,050
2,986
3,030
8,376,600
3,030
.
.
.
日付、始値、高値、安値、終値、出来高、調整後終値
です。
257:デフォルトの名無しさん
11/07/10 02:05:48.29
^</tr><tr>\n((^<td>.*</td>\n){7})
\1
で一塊ずつ抜き出して、
^<td>(.*)</td>$
\1
でさらに中身の抜き出し
258:255
11/07/10 02:39:16.37
>>257
ありがとうございます。
しかしながら、うまくいきませんでした。自分はwindowsを使っていますが、プログラム初心者なので
うまく理解できていない部分がたくさんある可能性が高いので一つ一つ分解して勉強させてもらいます。
259:デフォルトの名無しさん
11/07/10 02:52:28.77
株価が取り出せれば良いなら、Rubyや正規表現に拘らなくて良いじゃん。
どの言語でも良いけどループ使えば簡単だし。
260:255
11/07/10 03:06:58.57
>>259
ありがとうございます。まだ、Rubyとjava以外ほとんどさわったことがないです。
毎日の株価を自動で取得したり、過去の株価データ10年分、全銘柄をDBにいれて、ストラテジーをバックテストできる環境を作ろうと思いまして
javaなどをやってみたりしたんですが、プログラミングがむずかしくてうまくいかず、一番しっくりきたのがRubyでした。
株価ですが、ある程度期間がたつとwebのHTML形式が細かく変わっていくので正規表現を覚えてwebからスクレイピングしていくのが一番良いと判断しました。
まだ、株価を綺麗に抜き出す段階で苦労しています。
261:デフォルトの名無しさん
11/07/10 23:28:05.15
>>260
正規表現じゃなくて、XMLパーサ使ったほうが簡単だよ。Nokogiriをつかえば、
# coding: utf-8
require 'open-uri'
# require 'rubygems' # 1.8系では必要
require 'nokogiri'
Nokogiri(open('URLリンク(stocks.finance.yahoo.co.jp)').read)\
.search('table.boardFin tr').map{|e| e.children.map(&:content).reject{|ee| ee == "\n"}}
# => [["日付", "始値", "高値", "安値", "終値", "出来高", "調整後終値*"], ["2011年7月8日", "3,190", "3,190", "3,105", "3,110", "6,151,100", "3,110"], ...
262:255
11/07/12 22:21:39.52
>>261
ありがとうございます。やりたいことが完璧にできました。
感謝です。
263:デフォルトの名無しさん
11/07/13 02:16:06.17
●正規表現の使用環境
Boost.Regex
●検索か置換か?
検索
●説明
文字列の要素を抜き出したい
●対象データ
[push x ='100' y= '200' name = 'aaa']
[ins x = '100' y='200' z='300' name='ppp']
●希望する結果
push
x
100
y 200
name aaa
-------------------
ins
x
100
y
200
z
300
name
ppp
\\[(\\w+) +(\\w+) *= *'(.*)' +(\\w+) *= *'(.*)' +(\\w+) *= *'(.*)'\\]
で、あらかじめ要素数が決まっていれば可能なのですが、
[A B='C' ...] と要素数が不定な数ある場合どうすればいいでしょうか?
264: 忍法帖【Lv=21,xxxPT】 【東電 55.8 %】
11/07/13 03:06:31.07
Boost.Regex知らないからNCNRでお願いします
標準的正規表現で
[^\[\s='\]]+
これをグローバルマッチさせればいいんでないの
ただし、クオーテーション内に[]\s=は使用不可
イテレータとか違うのかな
265:デフォルトの名無しさん
11/07/13 05:45:12.43
>>263
例えば、一行目の
name aaa と
二行目の
x
100
の差が何によって起こるのかわからない。
オペレータ '=' と左右の空白は同一の
形式だと思うが。
266:デフォルトの名無しさん
11/07/13 06:45:58.05
●正規表現の使用環境
PHP 5.2.5
●検索か置換か?
置換
●説明
<a>でリンクされていないURLだけをリンクしたい
●対象データ
<a href='URLリンク(aaaaaa)'>URLリンク(aaaaaa)
<a href='URLリンク(aaaaaa)'>bbb</a>
URLリンク(aaaaaa)
URLリンク(aaaaaa)
(httpの前に改行は無いです)
●希望する結果
<a href="URLリンク(aaaaaa)">URLリンク(aaaaaa)
<a href="URLリンク(aaaaaa)">bbb</a>
<a href="URLリンク(aaaaaa)">URLリンク(aaaaaa)
<a href="URLリンク(aaaaaa)">URLリンク(aaaaaa)
↓これではダメでした。。
/((?![\"\'>])(https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)(?![\"\'<]))/
267:デフォルトの名無しさん
11/07/13 06:59:17.97
>>263
while や for で何度もマッチさせるんだよ
268:。 ◆oDupeixhZv52
11/07/14 09:10:15.15
>>266
/((?<![\"\'>])(htt~
269:デフォルトの名無しさん
11/07/15 03:48:07.73
>>268
エラーになってしまいます
[^\=\"\'>](https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
これでできたので、とりあえず書いてみます。
270:デフォルトの名無しさん
11/07/18 07:06:17.74
いつもお世話になっております。
>>261
この ('table.boardFin tr')というのは、Xpath、正規表現、またはnokogiri専用の表記のうち
どれにあたるのでしょうか?ぐぐってみても見つからずどうやって、この辺の表記の仕方を勉強すればよいでしょうか?
271:デフォルトの名無しさん
11/07/18 10:07:57.66
>>270
rubyは触ったことないけど、そのいずれにも当てはまらなくね?
どう見てもCSSセレクタの表記にしか見えない
272:デフォルトの名無しさん
11/07/19 03:05:23.86
>>270
>>271の言うとおりただのCSSセレクタ
意味は「クラス属性のひとつがboardFinのtable要素 の 子孫要素 の tr要素」
id属性だけで特定できるならxpathが簡単だけど、クラス属性を使わないと特定できないなら
属性を簡潔に書けるCSSセレクタの方が好きかな。
Nokogiriはどっちにも対応してるし、ちゃんぽんにしても書けるみたい。
273:270
11/07/19 19:57:43.31
>>271>>272
ありがとうございます。CSSセレクタ勉強します。
274:270
11/07/20 00:30:34.52
>>272
重ね重ね申し訳ないのですが、
map{|e| e.children.map(&:content).reject{|ee| ee == "\n"}}について
.reject{|ee| ee == "\n"}これは、改行の\nを取り除くということは、わかったのですが
.map{|e| e.children.map(&:content)
はchilderenの中の数字の部分を取り出すという意味だとおもうのですが
&:content ここの部分がどこを指すのか、わかりませんでした。
HTMLソースの<meta http-equiv="Content-Type" content="text/html; charset=utf-8">に
contentという文字を見つけたのでここ由来でテキスト表記を取り出すという意味なのかなと考えて
いますが、あっていますでしょうか?
また&:はどういう意味で下記で言えばどこの部分になるのでしょうか?
[#<Nokogiri::XML::Element:0x1def1d8 name="td" children=[#<Nokogiri::XML::Element:0x1def1d8 name="td" children=[#<
1def156 "2011\345\271\2647\346\234\21019\346\227\245">]>,#<Nkogiri::XML::Text:0x1db3f84 "\n">
よろしくお願いします。
275:デフォルトの名無しさん
11/07/20 00:33:39.01
なぜそれを正規表現スレで聞く
276:270
11/07/20 00:59:54.16
>>275
申し訳ないです。
最初は正規表現で抜き出そうとしていたのですが、XMLパーサーの方がよいというアドバイスをうけ質問を続けてしまいました。
あと、272さんに是非聞いてみたくて、これを最後にここでのXMLパーサーの質問はやめます。
277:デフォルトの名無しさん
11/07/20 03:11:53.36
>>274
contentはNokogiri::XML::Nodeクラスのメソッドでノード(要素)の中身(文字列or nil)を取り出す。
enum.map(&:meth)はenum.map{|e| e.meth}の簡略表記。
スクレイピングはライブラハックみたいな事件もあるから注意してやってね。
これ以降はRubyスレで。
278:255
11/07/20 04:38:35.98
>>277
大変ありがとうございます。勉強になりました。
ライブラハックぐぐってみました、自分が買ったシステムトレードの本にも
アクセスは10秒に一回程度にしてと書いてありましたし、人様に迷惑のかからない範囲で
最新の注意を払ってやります。
279:デフォルトの名無しさん
11/08/03 12:40:03.46
●正規表現の使用環境
C# 4.0
●検索か置換か?
置換です
●説明
HTMLファイルのソースコードの
<script type="text/javascript">~省略~</script>
scriptタグ開始を含めてscriptタグ終了タグまでを消去したいんです
●対象データ
<script type="text/javascript">
<!--
// ~コメント~
内容
// -->
</script>
<script type="text/javascript" src="script.js"></script>
上記のどちらも以下のものでやったのですが、どうもヒットしません
<script\s[a-zA-Z0-9<>()-\.!_~*,;/:@&=+$,%#'""]+>[a-zA-Z0-9<>()-\.!_~*,;/:@&=+$,%#]+\</script>
解答よろしくお願いします
280:デフォルトの名無しさん
11/08/03 16:06:12.44
C#分からんけど、こんなのでどう?
<script\s[\s\S]*?<\/script>
281:デフォルトの名無しさん
11/08/03 18:56:01.78
>>279
DOMで消したほうが確実ではないか?
属性としてもJavaScriptとかつけれるわけだし
282:デフォルトの名無しさん
11/08/05 22:49:53.78
○ds
○nds
○gameds
○gamends
×legends
検索したときに、○だけヒットさせるにはどうすればいいか教えてください
283:デフォルトの名無しさん
11/08/05 22:56:39.12
ds|nds|gameds|gamends
284:デフォルトの名無しさん
11/08/05 23:31:06.88
(?<!legen)ds
285:デフォルトの名無しさん
11/08/05 23:33:12.65
(game)?n?ds
286:デフォルトの名無しさん
11/08/05 23:50:06.43
\b(ds|nds|gameds|gamends)\b
287:デフォルトの名無しさん
11/08/06 00:25:08.04
○(?=ds|nds|gameds|gamends)
288:デフォルトの名無しさん
11/08/06 00:56:27.17
たくさんの回答ありがとうございます
うまくできました
289:デフォルトの名無しさん
11/08/06 01:04:00.57
どれでうまくできたんだよ
毎度のことだけどヤレヤレだな
290:デフォルトの名無しさん
11/08/07 03:15:33.89
●正規表現の使用環境
Emacs Lisp
●検索か置換か?
検索
●説明
C++などでよく使われる構文にマッチさせたい。
具体的にはクラスインスタンスへのアクセスアローやドットにマッチさせたい。
●対象データ
class A;
A a;
A* a_ref = &a;
a.m_hoge;
a->m_hoge;
●希望する結果
これにマッチさせる場合
"\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\="
が正解らしいですが
なぜ正解かわからない部分があるので教えてください。
まず"?"演算子の使い方ですが・・・直前の文字列(空文字込み)にマッチさせるために置いてあるとして
直後の ":"が理解不能です。
後半でも、":"が出てきますがこれも不可解。名前空間の"::"などにマッチさせたいのであれば
::や:?:とかならわかるのですが・・
291:デフォルトの名無しさん
11/08/07 04:32:22.75
>>290
> 直前の文字列(空文字込み)にマッチさせるために置いてあるとして
?の後ろの文字(列)で意味が変わってくるんですよ
とりあえず、>>2のサイトを?:で検索してみて
292:デフォルトの名無しさん
11/08/07 13:44:09.10
>>290
(?:pattern) は変数にキャプチャしない
293:デフォルトの名無しさん
11/08/07 23:22:49.99
●正規表現の使用環境
LINUX grepコマンド
●検索か置換か?
検索
●説明
ドットで行に一文字追加されたもののみ検索したい
●対象データ
ABC
ABCD
ABCDE
●希望する結果
ABCD
grep ABC. sample.txtとしても
結果 2文字追加されているABCDEまで出てきてしまいます。。。
ドットは一文字と習ったのですが、
なぜなのかわかりません・・。
294:デフォルトの名無しさん
11/08/08 00:39:46.75
^ABCD.$
295:デフォルトの名無しさん
11/08/08 00:51:07.33
>>291
> > 直前の文字列(空文字込み)にマッチさせるために置いてあるとして
> ?の後ろの文字(列)で意味が変わってくるんですよ
> とりあえず、>>2のサイトを?:で検索してみて
>>292
>(?:pattern) は変数にキャプチャしない
>>2で調べて解決しました。
正規表現はマッチング程度しかつかってなかったので
後方参照とかあまり考えたことなかったですね。
?:をつかっていた解答はパフォーマンス等を気にしていたのかな・・・。
いろいろ勉強になりました。ありがとう。
296:デフォルトの名無しさん
11/08/08 01:01:24.59
>>294
Dが余計
297:デフォルトの名無しさん
11/08/12 16:27:24.00
お願いします
●正規表現の使用環境
Hex Editor Neo
●検索か置換か?
検索
●説明
1文字目と3文字目が同じで、2文字と目と4文字目が同じの4文字の文字
●対象データ
ABAB
PAPA
0101
298:デフォルトの名無しさん
11/08/12 16:35:50.95
>>297
(.)((?!\1).)\1\2
299:デフォルトの名無しさん
11/08/12 20:35:16.89
1文字目≠2文字目 は別に条件に入ってなくね?
300:デフォルトの名無しさん
11/08/12 22:51:52.90
んだんだ
301:297
11/08/12 23:36:38.97
>>298
ありがとうございました。
目的のデータを探す手がかりが出来ました。
ヒットが多いので応用して絞り込みます。
\1を否定しているところがよく解らないので、ここを勉強してみます。
御世話になりました。
302:デフォルトの名無しさん
11/08/13 14:26:16.55
>>299
実は入ってる
まあ、説明で「1文字目と2文字目は別文字とする」と明確に書くのが一番だが
その説明が無い場合、というか「1文字目と2文字目が同じ場合を含む」あるいは
「連続する4文字が全て同じ場合を含む」などの条件が明確に書かれている場合を除いて
>>297の説明だけでも1文字目と2文字目は別文字と解釈するのが正解
303:デフォルトの名無しさん
11/08/13 14:55:39.43
そんなバナナ!
304:デフォルトの名無しさん
11/08/13 15:21:36.42
>>302 とは仕事したくない。
305:デフォルトの名無しさん
11/08/13 15:33:36.73
>>302の人気に嫉妬
306:デフォルトの名無しさん
11/08/13 16:15:41.73
以前会社にいた山田君を思い出した
307:デフォルトの名無しさん
11/08/14 07:18:27.49
むしろ>>302を理解できないような融通の利かない奴とは仕事したくないな。
常識的に解りそうなことでも、事細かに指示や伝達をしないと、
そんなこと言われてないとか屁理屈でゴネるような奴と仕事するとフォローやストレスで大変そうだ。
308:デフォルトの名無しさん
11/08/14 07:51:21.44
勝手な思い込みで仕事をしてもらっては困る
なぜ一言俺に聞かなかった(ドスンッ
まで読んだ
309:デフォルトの名無しさん
11/08/14 09:14:21.19
「あ~、そこは適当にやってもらえばいいから」って言ってた客が、出来上がり
見て「そこは、こう動くのが当たり前だろ」って言う手のひら返しする話をよく聞
くが >>302=>>307 みたいな奴に当たったんだろうな。
まあ、文句言われても「適当にやってもらえばいいから」って言うのを議事録に
書いとくしかないわな。
310:デフォルトの名無しさん
11/08/14 20:34:31.83
くが?
311:デフォルトの名無しさん
11/08/14 21:45:09.82
1行の文字桁数制限が無いか、あるいは大きなところでまで
固定桁数で改行入れて読みにくい文章書く子って未だに居るよね
そういった書き方見ても、書いてる内容見ても、程度が知れるってものだ
312:デフォルトの名無しさん
11/08/14 21:46:59.96
>>311
>>302さんおちついてください
313:デフォルトの名無しさん
11/08/14 22:52:31.95
?
314:デフォルトの名無しさん
11/08/14 23:16:13.06
>>311
>>311
315:デフォルトの名無しさん
11/08/14 23:32:34.98
多くの人に嘲笑されている現実と、自分に反する意見を投げかけているのは皆同一人物という妄想との、区別が付かない人。
316:デフォルトの名無しさん
11/08/15 00:00:50.15
どう考えたって一人だろうw
317:デフォルトの名無しさん
11/08/15 01:17:16.22
>>316
1人だって?プ
318:デフォルトの名無しさん
11/08/15 07:40:32.80
最低でも2人は居る
319:デフォルトの名無しさん
11/08/15 07:45:56.92
一人ってのは>>302,307,311,315が同一人物ってことね
それにツッコミや茶々入れてる人は当然含めてないよ
320:デフォルトの名無しさん
11/08/15 08:04:15.29
11人いる!
321:デフォルトの名無しさん
11/08/15 10:43:10.13
>>309
まさかとは思うが、「適当」≠「適切」だと思っている残念な人?
(指示を出すまでもない当たり前のことだから使用には詳細に書いていないけど)適当にやってくれ。
言わせんなよ、恥ずかしい。
322:デフォルトの名無しさん
11/08/15 11:58:59.29
詳細以前にスレタイ読もうよ。
323:デフォルトの名無しさん
11/08/15 13:08:30.17
>>297をを読んで
「指示を出すまでもない当たり前のことだから仕様には詳細に書いていないけど1文字目≠2文字目だから」
と自信満々言い切る人間がこの世に存在するという事実が、なんというか、すごいです。
324:デフォルトの名無しさん
11/08/15 13:12:54.50
>言わせんなよ、恥ずかしい。
確かにあんな的外れ恥ずかしくて普通は言えないw
そこをあえて言った勇気に敬意を表するw
325:デフォルトの名無しさん
11/08/15 14:03:14.42
そうだね、>297には一致とも不一致とも書かれていないのだから、
どちらの場合も考慮するのが正しいエンジニアリングだね。
だからと言って、2chの回答にそれを求めるのは間違いだと思うが。
326:デフォルトの名無しさん
11/08/15 16:31:31.26
推して知るべし
って言葉を知ってるかい?
327:デフォルトの名無しさん
11/08/15 16:42:06.95
それは知ってるが、知ってるからといっていつもそれを適用しちゃだめだろ。
328:デフォルトの名無しさん
11/08/15 16:53:51.04
正規表現 Part8
って言葉を知ってるかい?
329:デフォルトの名無しさん
11/08/15 17:01:32.21
仕事と2chを一緒にする馬鹿が多いな
仕事なら仕様としての抜けを確認するのが普通だが
2chなら別に通常普通ならこういう動作を求めるであろう答え書いてやれば十分だろ
330:デフォルトの名無しさん
11/08/15 17:09:41.59
仕事でなければバグを指摘しなくていい、とは画期的な意見だな
331:デフォルトの名無しさん
11/08/15 17:25:26.04
バグであるかどうかは本人以外わからん事だろ
332:デフォルトの名無しさん
11/08/15 17:30:18.46
>>321
指示を出すまでもない当たり前のことが標準化されてない事実にいい加減気付け
333:デフォルトの名無しさん
11/08/15 17:37:02.85
指示を出すのは仕事の話だろ
2chで指示を出す奴はいない
334:デフォルトの名無しさん
11/08/15 17:39:37.48
要するに自分では自明だと思っていたことが
他の人にとっては自明でもなんでもなかったって話だね
335:デフォルトの名無しさん
11/08/15 21:43:57.75
ローカルルールさえ守れない間抜けどもがグローバルルールを語るお笑いスレはここですか?
336:デフォルトの名無しさん
11/08/16 06:06:50.67
http://何が来るかわからない.何が来るかわからない.test.com/何が来るかわからない
http://何が来るかわからない.test.com/何が来るかわからない
上の2つともにマッチさせる正規表現は、どのように書くのでしょうか?
337:デフォルトの名無しさん
11/08/16 06:27:00.18
>336
"何が来るかわからない"が'.'を含むなら上と下は同じになる。
たぶん"何が来るかわからない"に含まれない文字はわかっているはずだし、
ホスト名/ドメイン名部分の"何が来るかわからない"と
パス部分"何が来るかわからない"の文字種は異なるはず。
338:デフォルトの名無しさん
11/08/16 07:28:43.87
>>336
例えばこんな感じかな?
(「何が来るかわからない.」という部分が1~何個続いてもマッチする)
http:\/\/([^.]+\.)+?test\.com\/[^\s]*
URLの検索に使う正規表現は用法によって様々
これで問題あれば>>4のテンプレを埋めて詳細に質問すべし
339:デフォルトの名無しさん
11/08/16 13:33:04.04
>>338
>これで問題あれば>>4のテンプレを埋めて詳細に質問すべし
テンプレ云々以前に問題ありまくりだろ
その正規表現だと、例えばこういうのまでマッチするわけだが
URLリンク(1249719652)
つか[^\s]*とかもはっきりいって意味不明だし、全然分かってないだろ
340:デフォルトの名無しさん
11/08/16 15:55:21.23
非難する暇があるなら、正解を教えてあげればいいのに。
こんなんではどう?
http:\/\/(.*\.)*test.com\/.*
341:デフォルトの名無しさん
11/08/16 15:58:31.19
>>340
> 正解を教えてあげればいいのに。
と言いながら、正解を教えず、間違いを教えて騙すのは如何なものかと
342:デフォルトの名無しさん
11/08/16 16:09:10.46
それは正解じゃないだろw
https?:\/\/(?:[^./]+\.)*test.com\/\S*
まだやるならこうじゃね?
RFC的には何でもOKになったんだっけか・・・・?
343:デフォルトの名無しさん
11/08/16 16:11:47.58
http:\/\/(\w+\.){1,2}test\.com\/\w+
344:デフォルトの名無しさん
11/08/16 18:25:00.45
「何が来るかわからない」の部分が、ドットは勿論のこと
スラッシュを含まないとは一言も書かれていないな。
これは".test.com/"がパスの構成部分である可能性を排除しない。
オレはまた>>297からの流れで、スレ住人が試されてんのかと思っちまった。
345:343
11/08/16 18:44:45.50
\w は - にマッチしないからまずいね
代わりに [-A-Za-z0-9_:]
346:デフォルトの名無しさん
11/08/16 18:45:40.85
コロンいらないな。スレ汚し失礼
347:デフォルトの名無しさん
11/08/16 18:48:47.82
URLにID,PASSを記述する時には:だけでなく@も必要になるが
348:デフォルトの名無しさん
11/08/16 18:58:11.17
たしかに。ホスト名の前に来るから省いちゃ駄目か
349:デフォルトの名無しさん
11/08/16 21:34:39.53
>>344
スラッシュを含まないとは書いてないから、別ドメインでも構わないってどんな思考してるんだよ
そういうのを屁理屈っていうんだよ
350:デフォルトの名無しさん
11/08/16 21:37:56.54
でも>>297からの流れだと>>344の言うことには一理あるw
351:デフォルトの名無しさん
11/08/16 21:44:07.04
まああれが URL であるって定義もないしな。w
352:デフォルトの名無しさん
11/08/16 21:47:25.58
>>344の回答が見てみたいな
353:デフォルトの名無しさん
11/08/17 00:31:19.22
.*
これは>>336の要求(「上の2つともにマッチさせる正規表現」)を完全に満たす。
354:デフォルトの名無しさん
11/08/17 00:38:21.83
>>353
URLであるとは書かれてないから、ドットの連続も認められるとでも言いたいのか?
ほんと馬鹿じゃね?それより夏休みの宿題は終わったか?
355:デフォルトの名無しさん
11/08/17 00:47:35.48
>354がRFC的に妥当なURLのみマッチする
(=RFC的に無効なURLにはマッチしない)
正規表現を書いてくれるらしいので期待
# まさか「.*」を「ドットの連続」と読んだ
# ってオチじゃないよね...?
356:デフォルトの名無しさん
11/08/17 00:59:29.07
>>355
># まさか「.*」を「ドットの連続」と読んだ
># ってオチじゃないよね...?
お前やっぱ馬鹿だったんだな・・・
.* は改行文字を除く1文字の0回以上の繰り返し
したがってRFCの仕様に反してドットの連続も認められるってことになる
まともな正規表現が書けないなら黙ってろよ
357:デフォルトの名無しさん
11/08/17 01:15:00.57
それ全部理解してるからこその>>355のレスになってると思うんだが・・・
358:デフォルトの名無しさん
11/08/17 01:15:19.79
>>353は小論文で自由に論じなさいと言われて
本当に自由に論じて0点喰らうタイプ
359:デフォルトの名無しさん
11/08/17 01:25:48.91
でもAO入試でひとりから絶賛されるタイプ
360:デフォルトの名無しさん
11/08/17 01:28:38.50
「やっぱ」って、このスレに書いたの
数ヶ月ぶりなんスけど...(^^; ナニコノヒト
> したがってRFCの仕様に反してドットの連続も認められるってことになる
o.k.
つまり「RFCに沿ってドットの連続を認めない
正規表現を書かなければならない」
という意図の発言だったってことね > ドットの連続云々
# だから>355(の前半部)の発言になってるんだけど...
# >357さん、正解です :)
ちなみに、RFC的制限のほんの一例ですが、
ドットによって区切られた各ラベルの先頭及び末尾に
ハイフンを用いてはならないのは当然ご存知ですよね?
(見たところ、この制限を反映させた回答は出ていないようですが...)
では引き続き、>354さんがRFC的に妥当なURLのみ
マッチする(=RFC的に無効なURLにはマッチしない)
正規表現を書いてくれることに期待
361:デフォルトの名無しさん
11/08/17 01:43:35.22
URIのマッチングにRFCに照らして~とか正気で言ってんのか?
( ゚,_ゝ゚)バカジャネーノ
362:デフォルトの名無しさん
11/08/17 01:46:11.55
答えが出なかったら>>360が正解を書いてくれるんだろう
それはそれでスレにとって有益なんじゃないか
363:355=360
11/08/17 01:50:35.97
>361
ぃゃ、ワタシもそこはテキトーに済ましときゃ
いい部分じゃないかと思っているんですが
(でないと泥沼にはまるのは目に見えてるんで)、
ワタシじゃなくて>356さんにとっては
譲れない部分みたいなんで...(^^A;;
364:355=360
11/08/17 01:54:45.51
>362
いえ、ワタシは「それは現実的じゃない」派なんで
(従って*ワタシは*正解を出せません)、
だからこそ>356さんの回答に期待している
というわけなのです :)
(相当に自信がおありのようなので)
365:デフォルトの名無しさん
11/08/17 02:04:23.82
ま、連続ドット禁止規定のみ反映させて他は反映させない、ってのはネェわな
他にどんな規定があるのかは知らんが
以前どこかで見たRFC的妥当性を考慮したURLの正規表現は
もはや「ほとんど何にでもマッチするような表現」だったような記憶がある・・・
366:デフォルトの名無しさん
11/08/17 02:13:33.46
メールアドレスをRFC完全準拠で抽出しようとすると
携帯メアドの一部を取りこぼしちゃうのは有名な話
367:デフォルトの名無しさん
11/08/17 10:59:03.55
一部のキャリアがRFC非準拠なアドレスを許してるのは有名な話、と、はっきり書こうよw
368:デフォルトの名無しさん
11/08/17 18:27:55.92
Not All RFCs are Standards.
369:デフォルトの名無しさん
11/08/17 19:29:11.74
だからなんだ。
白いカラスがいたからって「カラスは白い」って主張が正しくなるわけじゃない。
370:297
11/08/17 20:26:18.19
以前は大変御世話になりました。
で、自分がいい加減な文章を書いたせいで誤解を招く結果になり、申し訳ありません。
自分の意図は、「1文字目と2文字目は異なる」というものでした。
ですから、教えていただいた方法で正しかったですし
おかげで目的のデータを見つける事ができました。
皆さんを試すとかそんな気は一切ありません。
ただ自分の説明がいたらなかっただけです。申し訳ありません。
そして、どうも有り難う御座いました。
371:デフォルトの名無しさん
11/08/17 20:57:31.71
正規表現だけが唯一習得出来ないスキルだ。
難しい。
372:デフォルトの名無しさん
11/08/17 20:57:50.76
「まともな正規表現が書けないなら黙ってろよ」とか豪語してた>>356の自信作はまだですか?
373:デフォルトの名無しさん
11/08/17 21:02:18.65
書けないから黙ってるんじゃね?
374:344
11/08/17 21:06:37.05
>>370
ああいう流れの中で>>336が投下されたもんだから、もしかして
「この質問でも先と同じ屁理屈をこねてみせるのか?」と誰か(=336)が
スレ住人を試しているのかと思っちゃった、って話だから気にしなくていいよ。
君のことを言ったわけじゃない。紛らわしくてすまん。
375:think49 ◆bKk/qcAKuM
11/08/17 21:21:28.81
RFC3986準拠ならこんな感じ。意外とフリーダムです。
URLリンク(gist.github.com)
376:デフォルトの名無しさん
11/08/17 21:41:05.10
think49こんな所にも出没してたのかw
377:デフォルトの名無しさん
11/08/17 21:48:57.62
煽りが多いな
378:デフォルトの名無しさん
11/08/17 21:55:14.27
a://hoge/ も有りなのか…
379:デフォルトの名無しさん
11/08/18 10:32:51.42
あほ毛w
380:デフォルトの名無しさん
11/08/26 13:40:20.27
test
381:デフォルトの名無しさん
11/08/27 16:55:45.83
●正規表現の使用環境
C# 4.0
●検索か置換か?
置き換え
●説明
html内の<dd></dd>タグを検索して<dd>と</dd>のみ置き換えたい
ためしに<dd>とだけやってみましたが、<dd>タグは置き換えされませんでした
●対象データ
<dd>文章1</dd>
<dd>文章2</dd>
●希望する結果
文章1
文章2
382:デフォルトの名無しさん
11/08/27 19:21:21.89
すいません、自己解決しました
383:デフォルトの名無しさん
11/08/28 08:52:43.84
よろしくお願いします
●正規表現の使用環境
Perl
●検索か置換か?
置換
●説明
数が一桁の場合、0を加えて二桁に整形したい
●対象データ
2010年5月9日
2011年11月12日
2011年4月30日
2011年6月1日
2011年8月20日
●希望する結果
2010-05-09
2011-11-12
2011-04-30
2011-06-01
2011-08-20
384:デフォルトの名無しさん
11/08/28 09:23:11.79
^(\d{4})年(\d\d?)月(\d\d?)日
\1-\2-\3
-(\d)(?=[^\d]|\n)
-0\1
385:デフォルトの名無しさん
11/08/28 10:41:45.33
>>384
ありがとうございます
386:デフォルトの名無しさん
11/08/28 16:51:25.87
こういう風に画像を置換したいのですが、正解を教えてください
URLリンク(*.akamaihd.net)
↓
URLリンク(*.akamaihd.net)
.replace(/(http:\/\/[^/]+\.akamaihd\.net\/(.+?\/){2}.+?-).+\.jpg$/i,"$1o.jpg")
URLリンク(*.fc2.com)
↓
URLリンク(*.fc2.com)
.replace(/(http:\/\/[^/]+\.fc2\.com\/(.+?\/){5}.+?-).+\.jpg$/i,"$1digest_$2.gif")
387:デフォルトの名無しさん
11/08/28 17:23:14.67
urlは面倒なので手抜き
/[^/]+\.jpg
/o.jpg
/([^/]+)\.jpg
/digset_\1.gif
388:デフォルトの名無しさん
11/08/28 17:27:49.72
^(http:\/\/[^./]+\.akamaihd\.net\/(?:[^/]+\/){2})[^./]+\.jpg$
^(http:\/\/[^./]+\.fc2\.com\/(?:[^/]+\/){5})([^./]+)\.jpg$
389:デフォルトの名無しさん
11/08/28 18:09:38.56
以下で動作しませんでした
.replace(/^(http:\/\/[^./]+\.akamaihd\.net\/(?:[^/]+\/){2})[^./]+\.jpg$/i,"$1/o.jpg")
.replace(/^(http:\/\/[^./]+\.fc2\.com\/(?:[^/]+\/){5})([^./]+)\.jpg$/i,"$1/digset_\1.gif")
390:デフォルトの名無しさん
11/08/28 18:44:06.57
>>389
>$1/o.jpg
>$1/digset_\1.gif
なんでわざわざ改悪するんだよ?馬鹿なの?死ぬの?
391:デフォルトの名無しさん
11/08/28 19:04:41.07
[^./]の.ってエスケープしなくてもいいの?
392:デフォルトの名無しさん
11/08/28 19:21:09.39
以下で動作しませんでした
.replace(/^(http:\/\/[^./]+\.akamaihd\.net\/(?:[^/]+\/){2})[^./]+\.jpg$)
.replace(/^(http:\/\/[^./]+\.fc2\.com\/(?:[^/]+\/){5})([^./]+)\.jpg$)
.replace(/^(http:\/\/[^./]+\.akamaihd\.net\/(?:[^/]+\/){2})[^./]+\.jpg$/o.jpg)
.replace(/^(http:\/\/[^./]+\.fc2\.com\/(?:[^/]+\/){5})([^./]+)\.jpg$/digset_\1.gif)
/([^/]+)\.jpg
/digset_\1.gif
の入れ方を教えてください
393:デフォルトの名無しさん
11/08/28 19:37:53.37
>>387と>>388は別人だから組み合わせてもうまくいかないよ
あと言語が何なのか言っといたほうがいい
394:デフォルトの名無しさん
11/08/28 21:01:52.17
>>393
すいません 言語は分かりませんが
普通のユーザースクリプトに使用します。
分かる人は正解を教えてください
おねがいします
395:デフォルトの名無しさん
11/08/28 23:59:16.34
>>391
もちろん必要ない。
396:デフォルトの名無しさん
11/08/29 00:55:09.24
>>394
言語もソフト・アプリ名も言わないの?
それじゃ不明瞭極まりない
何の「普通のユーザースクリプト」か、くらいは説明できるでしょ
最初からテンプレに沿って質問を書いたほうが早道なのになー
397:デフォルトの名無しさん
11/08/29 01:07:04.98
なかなか気が狂ってて笑える
398:デフォルトの名無しさん
11/08/29 02:16:27.36
>>396
ウインドウズのブラウザ(chrome)のユーザースクリプト(拡張)に使うんですけど
script.jsです
399:デフォルトの名無しさん
11/08/29 02:39:44.50
var url = (
location.href
.replace(/^(http:\/\/[^/]+\.ggpht\.com\/(?:[^/]+\/){4})s[^/]+\/([^/]+\.[^/]+)$/, "$1$2")
.replace(/^(http:\/\/[^/]+\.googleusercontent\.com\/(?:[^/]+\/){4})[^/]+\/([^/]+\.[^/]+)$/, "$1$2")
.replace(/^(http:\/\/[^/]+\.bp.blogspot.com\/(?:[^/]+\/){4})[^/]+\/([^/]+\.[^/]+)$/, "$1$2")
.replace(/^(http:\/\/.+?\.photobucket\.com\/(.+?\/){3})th_(.+?\.[^/]+)$/i,"$1$3")
.replace(/^(http:\/\/img\.pics\.livedoor\.com\/(.+?\/){3}.+?-).+\.jpg$/i,"$11024.jpg")
);
if(url !== location.href){
location.replace(url);
}
400:デフォルトの名無しさん
11/08/29 02:45:32.26
↑
のような形式で
>>386の置換がが動作する記述を教えて欲しいのです。
401:デフォルトの名無しさん
11/08/29 03:51:28.85
>>398-400
Google Chromeのユーザースクリプトね
最初にちゃんと説明しようぜ
.replace(/(http:\/\/[^/]+\.akamaihd\.net\/(?:[^/]+\/){2})([^/]+\.jpg)$/i,"$1o.jpg")
.replace(/(http:\/\/[^/]+\.fc2\.com\/(?:[^/]+\/){5})([^/]+)\.jpg$/i,"$1digest_$2.gif")
ちなみにこのスクリプトの言語はJavaScriptですよ
だからscript.jsと、jsが付いてる