正規表現 part4 ..
[2ch|▼Menu]
159:デフォルトの名無しさん
07/09/14 11:40:36
スレタイに●が三つ以上入ってるスレを消したいたいんだが
全然消えない…この式じゃ間違ってる?

●{1}.*●{1}.*●{1}

ちなみに消したいのはこのスレ
スレリンク(jisaku板)

160:デフォルトの名無しさん
07/09/14 11:44:31
{1}って入れる意味あるのか?

161:デフォルトの名無しさん
07/09/14 12:05:29
てか正規表現で●って使えないっぽいな…
グーグルでも●の検索結果ゼロだしどうしたものやら

162:デフォルトの名無しさん
07/09/14 12:25:52
そんなバナナ

163:デフォルトの名無しさん
07/09/14 13:34:57
>>159
前方一致ならそれでもいいはずだが、完全一致なら最後にもう一組 ".*" が必要。

164:デフォルトの名無しさん
07/09/14 14:21:58
>>161
使えるかどうかは、ライブラリおよび環境設定による。

165:デフォルトの名無しさん
07/09/14 18:54:07
やっぱり●*ですら反応しないな…レスサンクス
ブラウザのほうのスレで聞いて来るわ
>159は撤回ってことで

166:デフォルトの名無しさん
07/09/14 19:25:12
.*●.*●.*●.*
こうじゃねーの

167:デフォルトの名無しさん
07/09/14 22:07:35
>>6
格好悪い顔文字作るなハゲ

168:デフォルトの名無しさん
07/09/15 08:05:30
(●.*){3,}
とかでいいんじゃないすか(^ω^;)

169:デフォルトの名無しさん
07/09/16 00:30:09
(.*●.*){3,}

ちょっとかわゆい

170:デフォルトの名無しさん
07/09/17 08:47:49
Perlで、Cのコメント除去プログラム
$text = join ('',<>);
$text = ~S
{
(".*?")|(/\*(.|\n)*?\*/)|(//[^\n]*)
}{$1}gx;
print $text;

171:デフォルトの名無しさん
07/09/17 13:04:12
phpで文字列の中のすべての4ケタの数字にマッチする
正規表現を試してます。
が、以下のスクリプトを動かしても"1234"がマッチしません。
なにかうまい方法ありませんでしょう。

//期待する結果 0000 1234 8888 9999
$str = "aaa 0000 1234 12345 1111 hoge 4545456465 9999";
$c = preg_match_all("/^[0-9]{4,}|\s[0-9]{3,4}\s|[0-9]{4,}$/",$str,$m);
echo $c."個マッチ<br>\r";
foreach ($m[0] as $k => $t){
echo "<br>\$m[0][$k] => $t\r";
$i++;
}

172:デフォルトの名無しさん
07/09/17 17:53:23
/(?<=\s)([0-9]{4})([^0-9a-z]?)/
なんとなーくという感じになってきたんですが…、もう少し何かorz

173:デフォルトの名無しさん
07/09/17 22:49:11
解決しました !
/\b[0-9]{4}\b/ //4ケタの数字にマッチ
でいけますた、スレ汚しスマソ。

174:デフォルトの名無しさん
07/09/23 23:22:56
JaneViewのNGExで悩んでいるのですが
 A A B
 A B A


 東京 埼玉 東京
 埼玉 東京 埼玉
 埼玉 千葉 埼玉
のように


((仙台|東京|名古屋).*大阪.*\2)|((仙台|東京|大阪).*名古屋.*\4)



175:デフォルトの名無しさん
07/09/23 23:37:37
すみません書きかけで送信してしまいました。

JaneViewのNGExで悩んでいるのですが
A,B,C,D…といったリストがあったとして、

 A A C D D B
のように間に入らなければ検出されずに
 A B A
 B C B
 C A B C
のようにリストの要素"AとA"や"BとB"の間に、別の要素が入っている場合を検出したいので
((A|B|C).*D.*\2)|((A|B|D).*C.*\4)
といった感じでやっています。
リストの要素が少なければ | でつないでいけばいいのですが、リストが多いととんでもない状態になりますよね。
どうすればこれをもっとスマートな表記にできるでしょうか?

176:デフォルトの名無しさん
07/09/27 21:16:09
(A|B|C|D)\s+((?!\1).)+\s+\1

とか?俺のJaneではヒットした。・・・一体何に使うのか気になる。

177:デフォルトの名無しさん
07/09/27 23:38:11
ありがとうございます。
(?!\1)でできました。

アニメサロンの延長情報確定スレに貼られている表で
邪魔な表を貼り付けられるのをあぼーんしたかったんだ。

178:デフォルトの名無しさん
07/09/28 11:42:54
正規表現で比較関数のようなことはできますか?

179:デフォルトの名無しさん
07/09/28 11:45:35
もっと具体的に

180:デフォルトの名無しさん
07/10/03 18:17:05
具体的に書いたらオマエが答えられるのかよ

181:デフォルトの名無しさん
07/10/03 18:39:11
答えられるか答えられないか具体的に判断できる

182:デフォルトの名無しさん
07/10/03 19:52:07
メーリングリスト等にもよくあるよね
内容が分かる程度に端折って書くと
「質問の仕方をしらない」等の苦情

具体的且つ詳細に書くと答えられないくせにw

183:デフォルトの名無しさん
07/10/03 22:13:05
こういう珍獣ってリアルにはいないんだよなぁ。

184:デフォルトの名無しさん
07/10/03 22:21:48
>>178=180=182
五日経っても回答得られなかった現実をきちんと見据えて、
いい加減諦めて「もっと具体的に」書いた方が良いのでは?

185:デフォルトの名無しさん
07/10/03 22:57:50
ん・・・全く意味が分からんからね。

186:デフォルトの名無しさん
07/10/03 23:54:49
こういう質問には「できません」と答えるのが大人のマナー。

187:デフォルトの名無しさん
07/10/04 00:25:03
>>184
もっと具体的に

188:デフォルトの名無しさん
07/10/04 02:24:11
もっと愚怠的に

189:デフォルトの名無しさん
07/10/04 08:37:31
hage

190:デフォルトの名無しさん
07/10/05 00:59:38
528 名前:名無し募集中。。。[] 投稿日:2007/10/05(金) 00:23:13.84 0
PHPの正規表現に詳しいやつがいたら教えてほしい
preg_replaceで置換をしたいんだが
たとえば
/sample/test/14567.jpg
というのを
/sample/test/backup/14567.jpg
というように最後の/を/backup/に置き換えるにはどうしたらいい?
いろいろ試してみたが俺のレベルじゃどうにもならんかった

191:デフォルトの名無しさん
07/10/05 01:29:35
preg_replace('/¥/([^¥/]+)$/', "/backup/$1", "/sample/test/14567.jpg");

192:デフォルトの名無しさん
07/10/05 16:25:45
知ったかぶり

193:デフォルトの名無しさん
07/10/05 22:30:53
>>190
pathinfo使えば?

194:デフォルトの名無しさん
07/10/06 10:35:59
余計なお世話

195:デフォルトの名無しさん
07/10/06 22:47:06
珍獣増えすぎwwwwwwwwwテラカオスwwwwwwww

196:デフォルトの名無しさん
07/10/06 23:56:30
[あはばば, ばばばば], あばばばば, あば, [あばばば, ば, ばばばばはば, ばば]

というような文字列があったとき、

[あはばば, ばばばば]
あばばばば
あば
[あばばば, ば, ばばばばはば, ばば]

と分割したいのですが、どのようにしたらいいでしょうか?
(\\[?.*\\]?),とかやってみたのですが全然だめでした orz
なかのあばば〜は変化します。

197:デフォルトの名無しさん
07/10/06 23:57:28
>>196
まずは >>1 を見てみて。

198:デフォルトの名無しさん
07/10/07 00:00:39
>>197
すいません、.NETのSystem.Text.RegularExpressionsのRegex.Split()で置換しています。

199:デフォルトの名無しさん
07/10/07 00:10:25
>>198
すいません、置換じゃなくて分割でした orz

200:デフォルトの名無しさん
07/10/07 01:56:00
>>196
まず、[あば,ばばば] を うんこっこー に痴漢する
(うんこっこー に痴漢した文字列は堆肥しておく)

うんこっこー, あばばばば, あば, うんこっこー
となるので、これを分割する。そのあと、
うんこっこー を堆肥しておいた文字列に戻す。

201:デフォルトの名無しさん
07/10/07 04:37:56
逆に、 "," をうんこっこーに置換しても良いかもね。
Perl ですまんけどこんな感じで。

$str =~ s/(\[[^]]+\]|[^,]+)(?:(,\s*)|$)/\1うんこっこー/g;
$ary = split(/うんこっこー/, $str);

202:デフォルトの名無しさん
07/10/07 12:19:13
Perl 5.8.8を使っています。
文字列の先頭からある文字列(たとえばXYZ)の直前までを削除する、
ただしその文字列XYZがこない場合はすべてを削除する正規表現は
どう記述したらよいでしょうか。

たとえば
(1) abcXYdefXYZ123 なら abcXYdef のみを削除する
(2) abcXYdef なら abcXYdef すべてを削除する
ということです。
s/^.*(XYZ)?/$1/; とすると(1),(2)ともすべてが削除されてしまい、
s/^.*?(XYZ)?/$1/; とすると(1),(2)とも1文字も削除されません。

s/^.*?XYZ// || s/^.*//;
とすれば(1),(2)ともうまくいきますが、
できれば1個の正規表現で実現させたいです。

203:デフォルトの名無しさん
07/10/07 13:02:54
s/^abcXYdef//;

204:デフォルトの名無しさん
07/10/07 13:19:38
ちゃんと動くんなら、自分の能力で到達可能な範囲のプログラムで十分だと思うよw

s/^((?!XYZ).)*//

205:デフォルトの名無しさん
07/10/07 13:27:33
s/(^.*?XYZ|^.*)//;

206:デフォルトの名無しさん
07/10/07 13:30:59
s/^.*?XYZ|^.*//;

207:デフォルトの名無しさん
07/10/07 13:32:25
> s/^.*?XYZ// || s/^.*//;
> とすれば(1),(2)ともうまくいきますが、

ウソつけ!

208:202
07/10/07 15:49:43
短時間にたくさんのレスが!ありがとうございます。
>>204
(?!pattern) が使えるんじゃないかと思って
質問前にPerlのマニュアルを読んだんですがうまくいきませんでした。
なるほど、こうすればうまくいくんですね。

>>207
s/^.*?XYZ/XYZ/ || s/^.*//; の間違いでした。失礼しました。

>>205-206
ということで、元の質問が間違ってたので間違いです。
試行錯誤の末、 s/^(.*(?=XYZ)|.*)//; という別解を見つけました。


209:デフォルトの名無しさん
07/10/07 20:10:50
PHP5のpreg_matchで、
涼子、愛、美姫以外の文字列が来た場合を検知したいんですが。

涼子、愛、美姫のどれかを検知する場合、
pattern = '/涼子|愛|美姫/';
ですが、涼子、愛、美姫以外を検知するにはどう書いたらいいですか?


210:デフォルトの名無しさん
07/10/07 20:13:06
そのパターンにマッチしないことを確認すればよい。

211:209
07/10/07 20:21:07
>>210
すみません。
涼子、愛、美姫以外を含む文字列です。

たとえば、涼子愛子美紀が来たばあい、
「子」が紛れ込んでることを検知したいのですが。

212:209
07/10/07 20:36:57
>>211
'/^涼子|^愛|^美姫/';


213:209
07/10/07 20:38:53
>>212
すみません。途中でした。
'/^涼子|^愛|^美姫/';
だと涼子、愛、美紀も全部ひっかかってしまいます。
それだけを含んで、それ以外の文字列を全然含まないようにしたいのですが。


214:デフォルトの名無しさん
07/10/07 20:55:01
同じくphp5のpreg_matchですが、
半角または全角の数字から始まるはどう書きますか?

215:デフォルトの名無しさん
07/10/07 21:39:55
>>213
/^(?:涼子|愛|美姫)*$/ とか?

216:デフォルトの名無しさん
07/10/07 21:40:46
>>214
/^(?:\d|1|2|3|4|5|6|7|8|9|0)/ とか?

217:デフォルトの名無しさん
07/10/08 00:15:19
$string = '涼子愛子美紀';
$result = preg_replace( '/涼子|愛|美姫/', '', $string);
echo 'おまんこ';


218:デフォルトの名無しさん
07/10/08 13:51:27
>>215-216
ありがとうございました。

>>217
氏ね!

219:デフォルトの名無しさん
07/10/08 17:38:51
NFAを機械的にDFAに変換する方法を教えてください。

220:デフォルトの名無しさん
07/10/08 20:14:07
そんなもん無い!


って答えでFA?

221:ヽ・´∀`・,,)っ━━━━━━┓
07/10/19 03:35:03
Aho-Corasick改とかでいいと思うが。

222:デフォルトの名無しさん
07/10/25 17:50:49
phpなんですが、URLリンク(*.example.*)にマッチさせたいと思ってます。
2つめの*の部分で、comやjp等にマッチさせたいのですが、
http:\/\/(.+\.)?example\..+/では、
URLリンク(www.example.hoge.com)なんかもマッチしてしまいます。
http:\/\/(+\.)?example\.(com|jp)/とかにすると、
新しいドメインがでてきたときに対応できません。
何かよい方法ありませんでしょうか?

223:デフォルトの名無しさん
07/10/25 18:33:14
>>222
「新しいドメイン」ってのはどんなところまでを想定してる?

224:デフォルトの名無しさん
07/10/25 18:49:54
簡易なのでよければ \..+ じゃなくて \.[^/.]+ にするとか

225:デフォルトの名無しさん
07/10/25 19:51:52
http:\/\/(+\.)?example\.[^.]+\/

226:デフォルトの名無しさん
07/10/27 16:43:32
/\/\/\/\/\//\/\/\/\/\/\/\FUCKINTOSH?_*+*}+}`+`%$W`}!LT`LA<VR`AKVAREGERGA"#%IW$%U&'I<{)'(<O'T(*O>


最近、こうして何の作意もなく打ったものが正則表現に見えてどうしようもない


227:デフォルトの名無しさん
07/11/08 00:14:41
最初と最後は"/"であり、
その間に"/../"や"/./"が発生しない文字列を
正規表現では記述できますか?

[×]
/etc/../usr/./local/
/../
/./

[○]
/etc/sysconfig/
/abc/.aaaa/

228:デフォルトの名無しさん
07/11/08 05:41:48
>>227
正規表現で一気に行うんじゃなくて、
"/" で分割して、各パーツがドットだけで構成されていたらハネる、とか
(ディレクトリトラバーサル対策ならよく調べたほうがいいかも)

229:デフォルトの名無しさん
07/11/08 08:45:57
ありがとうございます。
xmlのxsd:patternで書きたかったのですが、だめそうです。考え直してみます。

230:デフォルトの名無しさん
07/11/08 13:40:57
>>227
これでどうかな。

^/(([^/.][^/]*|\.[^/.][^/]*|\.\.[^/]+)/)*$

汚染チェックに使うなら>>228の言うようにした方がいいな。

231:デフォルトの名無しさん
07/11/11 17:33:05
webでの絵文字表示に苦戦しているのですが、
BAD+[SJISコード]を正規表現で表すにはどう書いたらいいですか?

232:デフォルトの名無しさん
07/11/11 17:34:32
書き忘れていました。言語はPHPで、バージョンは4.4.1です。

233:デフォルトの名無しさん
07/11/11 23:06:58
ぐ・ぐ・れ

234:デフォルトの名無しさん
07/11/11 23:47:19
うん、ググれば全て解決するからこのスレ潰すべきだね。

235:デフォルトの名無しさん
07/11/11 23:52:31
aho

236:デフォルトの名無しさん
07/11/12 00:15:22
ワロタwwwwwww

237:デフォルトの名無しさん
07/11/12 01:18:32
いや、ググって該当するページを見たんですけど、正規表現の構成の仕方がわからなくて、
ここに書き込みました。
調べるだけ調べたんですけど、やはりだめでしょうか

238:デフォルトの名無しさん
07/11/12 01:42:05
だめです

239:デフォルトの名無しさん
07/11/12 04:32:21
なんだこいつら 本当はできないんじゃねーの?

240:デフォルトの名無しさん
07/11/12 09:32:04
>>239
お、やっと気づいたようだね。それじゃあバイバーイ!

241:デフォルトの名無しさん
07/11/12 19:50:58
質問です。正規表現でconsumeするというのは日本語でいうとどういうことですか?

242:デフォルトの名無しさん
07/11/12 19:59:53
文字を消費するということ。

243:241
07/11/12 21:10:47
>>242
ありがとうございます。「文字を消費する」とはどういうことでしょうか?
イメージが湧きません。

244:デフォルトの名無しさん
07/11/12 22:24:56
正規表現 /..c/ を "abc" にマッチさせたときを考えると、
最初の /./ は "a" にマッチして消費する。
すると、なんと言うかテキストエディタのカーソルが一つ進むのをイメージしてくれたらよいか、
二個目の /./ が "b" にマッチできるようになる。

245:デフォルトの名無しさん
07/11/12 22:30:07
テキストエディタの ed ってのが元になってるからね。
カーソルって例えはナイス!

246:241
07/11/12 23:16:33
>>244
なるほど、よくわかりました。ありがとうございます。

247:デフォルトの名無しさん
07/11/15 07:57:08
おはようございます。このスレの過去ログってネットにありますか?

248:デフォルトの名無しさん
07/11/15 16:55:18
あります。

249:デフォルトの名無しさん
07/11/15 20:14:33
アキュムレータの0ビット目って左端?それとも右端?

250:デフォルトの名無しさん
07/11/16 00:58:31
>>249
スレ違い。

251:デフォルトの名無しさん
07/11/16 23:29:30
>>249


252:デフォルトの名無しさん
07/11/17 01:06:19
perl互換のFlexible Renamerで置換したいのですが。
(hoge)hoge(hoge).txtを(hoge) hoge(hoge).txtとしたい場合はどう書けばいいのでしょうか。
)の直後にスペースを入れ、拡張子前の)の直後には入れたくないんです。

253:デフォルトの名無しさん
07/11/17 01:30:29
")" -> ") "
" ." -> "."

254:デフォルトの名無しさん
07/11/17 01:34:08
>>253
なるほど。2回やるという手が・・・。ありがとうございました。

255:デフォルトの名無しさん
07/11/17 09:27:48
リネーマの仕様によるけど、Perl互換なら
"^(\([^)]*\))" -> "$1 "
"^(\([^)]*\))(.*)" -> "$1 $2"
とか。いずれにしても調整が必要

256:デフォルトの名無しさん
07/11/18 19:15:56
vb.netで
「// xxxxx EXEC 〜」で始まり、
「// xxxxx EXEC 〜」で始まる1行前までを
1グループで取得したいと考えています

(?ims:(^\/\/+\s+EXEC+.+))
だとまるまる取得してしまうのはわかるのですが、
これを上記の様に取得するにはどう書けばよいのでしょうか?

ご教授よろしくお願いいたします。


257:デフォルトの名無しさん
07/11/18 20:18:03
split

258:デフォルトの名無しさん
07/11/19 02:39:09
>>256
なんでスラッシュをエスケープしてんだよw

.NET の正規表現なら可変長の戻り読みが使えたと思うから、
その始まりのしるしと終端のしるしを戻り読みの部分と先読みの部分に置けば?

.NETで可変長の戻り読みができなかったらすまんw


259:デフォルトの名無しさん
07/11/22 22:35:09
数値比較をしたいのですが、0x021a4 っていくつなのでしょうか?

260:デフォルトの名無しさん
07/11/22 23:13:20
2 * 16^3 + 1 * 16^2 + 10 * 16^1 + 4 * 16^0

261:デフォルトの名無しさん
07/11/22 23:17:32
>>259
電卓開く

関数電卓モードにする

16進モードにする

21a4と打つ

10進モードにする

正規表現の話じゃねーし

262:デフォルトの名無しさん
07/11/23 01:54:14
URLリンク(www.google.co.jp)

263:デフォルトの名無しさん
07/11/23 01:58:02
URLリンク(www.google.co.jp)
これでおk

264:デフォルトの名無しさん
07/11/23 02:44:38
16進数知らないプログラマがいるのか・・・時代は変わったな。

265:デフォルトの名無しさん
07/11/23 02:46:28
プログラマじゃないから

266:デフォルトの名無しさん
07/11/23 08:04:03
具体的には秀丸エディタで置換を行いたいのですが、こうするには…
--------------
[12:34:56] 発言者1:
文章2
文章3
[12:34:56] 発言者2:
文章4



[12:34:56] 発言者1:
文章2
文章3

[12:34:56] 発言者2:
文章4

--------------
どうしたら良いのでしょうか?(文章の中に [ ] が含まれる可能性は無いものとして単純に)
\n[ と記述すると、正規表現の括弧の対応が合ってないとか怒られてしまいます。

非常に初心者な質問ですいません。

267:デフォルトの名無しさん
07/11/23 09:26:00
エスケープ

268:デフォルトの名無しさん
07/11/23 11:43:08
regexre
FrameworkFrame

などといったような「同じ文字列とそれに挟まれた別な文字列」を取り出したいのですが、
どういう文を書いたら実現できますか?
PHPのpreg_replaceで使用します。
よろしくお願いします。

269:デフォルトの名無しさん
07/11/23 12:00:17
re(.*)re でいけると思うけど。
以下はJScriptだけどこれくらいなら読み取れるよね?

var keyword = "re";
var pattern = keyword + "(.*)" + keyword;
var objReg = new RegExp(pattern);

"regexre".match(pattern);
WScript.StdOut.WriteLine(RegExp.$1);
"rere".match(pattern);
WScript.StdOut.WriteLine(RegExp.$1);
"regexregex".match(pattern);
WScript.StdOut.WriteLine(RegExp.$1);

270:デフォルトの名無しさん
07/11/23 12:50:33
Ruby なら (.+)(.+)\1 で $2 を取ればいけるけど、
PHP でいけるかどうかは知らん

271:デフォルトの名無しさん
07/11/23 12:53:54
>>269
日本語読解力に大きく欠けますな

272:デフォルトの名無しさん
07/11/23 13:00:21
eregexreならrが取れるはずだからつかいものになるのか?

273:デフォルトの名無しさん
07/11/23 13:05:34
eregexre なら regexr が取れる。
最長一致だから。
これが目的の物かはともかくとして。

274:デフォルトの名無しさん
07/11/23 13:51:50
>>269
すみません、説明不足でした。
同じ文字列というのも未知なのです。

>>270.
ありがとうございます。
Rubyならいける、というのは期待が持てました。
早速調べてみます。

>>272-273
ここも説明不足でした。
「同じ文字列とそれに挟まれた別な文字列」の全てを取得したいです。
つまりThisIsThePenという文字列からThisIsTh(とePe)を取得できるようにしたいのです。

275:デフォルトの名無しさん
07/11/23 13:56:24
sIs は要らないの?

276:デフォルトの名無しさん
07/11/23 14:00:51
sIs が必要ないならとりあえず Ruby ではこうなる。
PHP でいk(ry

'ThisIsThePen'.scan(/((.+).+\2)/) { puts($1) }

277:デフォルトの名無しさん
07/11/23 19:31:22
文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出すことができますが、 文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。


278:デフォルトの名無しさん
07/11/23 19:42:51
日本語でおk

279:デフォルトの名無しさん
07/11/23 19:46:56
\{([^\}]+)\}

280:デフォルトの名無しさん
07/11/24 08:40:39
ありがとう。
すごいね
正規表現分かる人尊敬するわ

281:デフォルトの名無しさん
07/11/24 09:46:49
別に大した事じゃない。
すげーとか思って思考停止してるから理解できないだけ。

282:デフォルトの名無しさん
07/11/24 09:48:41
分かりました。
私も頑張って勉強します

283:デフォルトの名無しさん
07/11/24 10:09:17
よし! その意気だ!

284:デフォルトの名無しさん
07/11/24 11:18:23
ホモビデオからお前ら。

285:デフォルトの名無しさん
07/11/25 17:53:21
なんでホモなの?
私は女性です

286:デフォルトの名無しさん
07/11/25 19:20:34
性同一性障害か

287:デフォルトの名無しさん
07/11/25 20:30:25
性器表現

288:デフォルトの名無しさん
07/11/25 20:32:19
モザイクのことか

289:デフォルトの名無しさん
07/11/26 00:01:46
>>285
ホモセクシュアルは同性愛って意味だよ
当然、女性同士でも使う

290:デフォルトの名無しさん
07/11/26 12:46:15
ここにいる奴らは全員例外なくホモ



















サピエンス

291:デフォルトの名無しさん
07/11/26 15:19:45
ホモ牛乳という名前にはかなりインパクトがあると思うんだ

292:デフォルトの名無しさん
07/11/26 15:26:00
「ホモゲナイズド牛乳」じゃ長すぎるべ。

293:デフォルトの名無しさん
07/11/26 18:38:03
ホモジニアス・マルチコアを略してホモコア呼べ

294:デフォルトの名無しさん
07/11/27 08:45:29
みんな頭おかしいのですね。
残念です

295:デフォルトの名無しさん
07/11/27 11:39:19
HTMLに含まれる CSSの
class="***" や id="**" , aタグの target="***" を削除したいんですが、観よう見真似でやったのですが
マッチしてくれません。どなたか..

(id|class|target|title|style|name)=[\+\$\;\?\.\W\w%,!#~*/:@&=_-]+?

PC用に吐き出されたデータを、携帯用に変換したくて..

296:デフォルトの名無しさん
07/11/27 11:56:07
target="[^"]*"

297:デフォルトの名無しさん
07/11/29 17:43:52
HTMLのコメントを取得するにはどうしたら良いでしょうか?
<!--[^-->]*-->
で試したのですが[^-->]だと各文字を含まないとなってしまうのでだめでした。
文字列を含まないって表現方法がわかりません。
お手数ですがよろしくお願いします。

298:デフォルトの名無しさん
07/11/29 18:01:50
>>297
貪欲でないマッチ

299:デフォルトの名無しさん
07/11/29 18:35:11
>>297
html パーサ使え

300:297
07/11/29 19:51:50
>>298
ありがとうございます。
貪欲でないマッチでググッた所無事解決しました。

>>299
プログラム内で使いたかったので、
パーサを使うとhtml記述ミスなどがあった場合に面倒なので正規表現を使う事にしました。


301:デフォルトの名無しさん
07/11/29 23:53:17
>>299
アホ

302:デフォルトの名無しさん
07/12/02 03:37:22
bregexp.dllを使って
<th>ほげほげ<br/>ほげほげ</th>
のような<th>で囲まれた内部の<br/>だけ削除したいのですが、
<br/>の数が不定で困ってます。どう書けばよいのでしょう?

303:デフォルトの名無しさん
07/12/02 17:04:43
>>302
html パーサ使え

304:デフォルトの名無しさん
07/12/03 18:49:06
正規表現でand検索したいのですが
どのようにすればいいのですか?
正規表現: Win.*Mac.*Linux.*Sun
上記のようにやると、順番が固定されてしまいます。
どのような順番でもいいので4つ入っていれば
ヒットさせたいのです。


305:デフォルトの名無しさん
07/12/03 19:19:07
>>304
肯定戻り読み

306:デフォルトの名無しさん
07/12/03 21:22:52
(?=.*Win)(?=.*Mac)(?=.*Linux)(?=.*Sun).*

307:デフォルトの名無しさん
07/12/03 23:37:29
NHKのFMの番組の曲の時間表示(全角の数字と '分'と'秒'から成る文字列で
末尾は必ず '秒' )を一気に半角数字と「分⇒m」「秒⇒s」のように一気に置換
する方法がありますか? 全角数字でも '2007年' のような文字列はそのま
まにしたいのです。
【例】
'6分08秒' ⇒ 6m08s


308:デフォルトの名無しさん
07/12/04 00:20:03
tr/時分秒/hms/

309:デフォルトの名無しさん
07/12/04 09:06:00
>全角数字でも '2007年' のような文字列はそのままにしたい

のなら

>【例】
>'6分08秒' ⇒ 6m08s



'6分08秒' ⇒ 6m08s

ならないといけないの?

それとも【例】のようにして欲しいの?


310:デフォルトの名無しさん
07/12/04 21:11:44
正規表現処理系一般の話なら文字変換はダメだなあ

311:デフォルトの名無しさん
07/12/04 21:38:52
tr/時分秒[0-9]/hms[0-9]/


312:デフォルトの名無しさん
07/12/04 21:39:27
trはスレ違いだろ

313:デフォルトの名無しさん
07/12/05 00:33:46
>>309は日本語が読めないのだろうか?


314:デフォルトの名無しさん
07/12/05 18:08:23
>>305-306 できました。ありがとうございます。

315:デフォルトの名無しさん
07/12/05 19:45:45
URL が多数含まれる文章があるとき、その URL にマッチさせる正規表現を知りたいです。
マッチさせるのは “http://〜/” の部分で充分でして、それだけなら http:\/\/[^\/]+\/ でイケそうです。
ただ今回やりたいのは、特定のドメイン(というかサーバ)の URL はマッチさせない、ということです。
たとえば URLリンク(www.google.co.jp) にはマッチさせたくない、ということです。
これはどんな書き方になるでしょうか?
Perl な正規表現だと具合いいです。

316:デフォルトの名無しさん
07/12/06 06:31:42
>315

>2

317:デフォルトの名無しさん
07/12/07 07:08:24
フリーでとにかく早いのってどれ?
秀丸のやつ?鬼車?

318:デフォルトの名無しさん
07/12/07 23:18:36
秀丸は速くない。

319:デフォルトの名無しさん
07/12/08 14:11:45
>>317
秀丸のは確かに速い

速いけど、他で出来て秀丸で出来ない表現が多いし
それを無理やり秀丸で表現すると結局遅くなることも多い

320:デフォルトの名無しさん
07/12/08 23:27:27
[0-1]?[0-9]
これで2桁目に0か1が付くか付かないか
という表現になりますか?

321:デフォルトの名無しさん
07/12/08 23:32:07
日本語でおk
それだと、0〜9 と 00〜19 にマッチ

322:デフォルトの名無しさん
07/12/08 23:38:08
すみませんここで聞いて良い事なのか解らないのですが、よければお教えください。
C/Migemo 1.2 リリース版 for Windowsに付属の辞書を読み込ませhoをmigemo_queryしてみたことろ
([ホ☆★ほ逋捕縫豊B萠萌]|ho|Ho)と、なぜかBが含まれた文字列がかえってきました。
この文字列を利用して検索をすると当たり前ながらBに反応してしまうのです。
そこで質問なのですが、どうしてBが含まれるのでしょうか?
もしかして私の使い方が間違っているのでしょうか?

323:320
07/12/09 00:14:35
>>321
すいません、それが言いたかった
ありがとう

324:デフォルトの名無しさん
07/12/09 00:33:23
>>323
「すみません」だろ
日本から出て行けよ

325:デフォルトの名無しさん
07/12/09 00:50:18
こらこら

326:デフォルトの名無しさん
07/12/09 01:08:50
>>322
完全にスレ違いな気がするが、どこが適切か知らないので一応答えておくと、
ホウ素の元素記号がBだから。他にはsaで酸素のOが引っかかったりするはず。

327:デフォルトの名無しさん
07/12/09 01:41:55
>>326
おおおおおおお!
なるほど…
おかげで謎が解けました
ありがとうございました。

328:デフォルトの名無しさん
07/12/18 00:38:45
ひゃ[あぁ゛]*うまひ[いぃ゛]*

329:デフォルトの名無しさん
07/12/18 01:09:55
ひゃうまひ゛

330:デフォルトの名無しさん
07/12/18 04:59:57
ひゃ゛゛゛゛゛うまひ゛゛゛゛゛゛゛

331:デフォルトの名無しさん
07/12/18 12:24:04
/image/[00-31]_[00-1f].jpg
     ↑00〜31↑00〜1f(16進数)
正規表現でこのように設定したいのですがうまくいきません。

/image/(00_00、01_01・・・10_0a・・・31_1f)
こういったものを書きたいのですが可能でしょうか?

332:デフォルトの名無しさん
07/12/18 12:29:21
>>331
[] は一文字にしかマッチしないのでー。
正規表現はふつうは数値の範囲は指定できないのでー。

([0-2][0-9a-f]|30|31)_[01][0-9a-f]\.jpg


333:デフォルトの名無しさん
07/12/18 13:19:37
>>331
もしかして、 10進部分と 16進部分を対応させたいと思ってる?
それだと正規表現だけでは簡単に書けないと思う。

334:デフォルトの名無しさん
08/01/05 11:31:41
日本語の話しになってしまいますが、質問させてください。

>検索対象に正規表現が一致した場合

>検索対象が正規表現に一致した場合
どっちが正しいのでしょう?

前者が正しいような気がするのですが、よく判らなくなってきました

335:デフォルトの名無しさん
08/01/05 12:04:31
一致というよりマッチといいましょう。

336:デフォルトの名無しさん
08/01/05 17:24:34
そういえばどっちも言うような気がする。
文脈によるというかどっちを軸に語るかによるんじゃないかな。

337:デフォルトの名無しさん
08/01/05 17:36:47
厳密に言うと受理だろうが、気にしすぎだとも思う

338:デフォルトの名無しさん
08/01/05 21:41:39
プログラムの 「前」 ってどっちですか?

339:デフォルトの名無しさん
08/01/05 21:42:19
つまらんコピペだな

340:デフォルトの名無しさん
08/01/05 21:45:36
じゃね? => ぢゃね?

341:デフォルトの名無しさん
08/01/06 14:50:28
ここのFAQの中の手作業でNFAを作成ってページなんだけど
URLリンク(capslockabcjp.kitunebi.com)
/***/にマッチしないきがするけど。

342:デフォルトの名無しさん
08/01/06 15:05:50
だからなんだよ。

343:デフォルトの名無しさん
08/01/06 15:29:12



344:334
08/01/06 15:59:55
レス有難うございます。やっぱり気にし過ぎですかね。
気にしない事にします。

345:デフォルトの名無しさん
08/01/06 23:17:00
if (ch == '/') st = 1;
else if (ch == '*') st = 4; // 追加
図のほうに
S4->S4 [label="*"];
だね

346:デフォルトの名無しさん
08/01/07 00:05:54
>検索対象(の文字列)が正規表現(で表されたパターン)にマッチした場合
パターンは固定だから、俺はこっちがしっくりくる

347:デフォルトの名無しさん
08/01/10 03:38:22
"one two three four"
"one three two four"
にしたいのです。正規表現でスワップ(位置交換)したいんですが
ググってもあんまりなかったです。

一応、java.util.regex.*; 使ってます。

348:デフォルトの名無しさん
08/01/10 03:41:41
"one two three four five" 
"one four three two five" 
1 2 3 4 5
1 4 3 2 5
でした。

349:デフォルトの名無しさん
08/01/10 16:36:35
Pattern pattern = Pattern.compile("^(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)$");
Matcher matcher = pattern.matcher("one two three four five");
String str = matcher.replaceFirst("$1 $4 $3 $2 $5");

とりあえず

350:デフォルトの名無しさん
08/01/10 17:42:18
>>349
おお、ありがとうございます。
java.util.regex.Pattern; のAPI見ても \1 は載っていても、$1 は載ってなかったんですができるんですね。

ところでAPI(java, perl, ruby, js)見ても良く分かり辛いのですが、\n, $n のnはいくつまで参照できるんでしょうか。

nは10進表記みたいですけど、
\0
- 1から9までは dec
\1 ... \9
- dec
\10, \11 ... \21
- oct
\010, \011 ... \025

\0nnn とすれば自動で8進表記
\nnnn とすれば自動で10進表記

参照は \1 <=> $1

API(java)ではこういう感じみたいなんですけど実際はどうなんでしょうか。

351:デフォルトの名無しさん
08/01/10 21:27:54
"\1" じゃなく、"\\1" じゃないのかな。

java コンパイル ⇒ 正規表現コンパイル
つまり2回コンパイルされる事に注意。
ここらへんの理屈がわかってないとツライよ。

352:349
08/01/11 00:55:38
>>350
とりあえず最大数は気にしなくていい、[\$]1000とかでもいけるように見える
Petternクラスでは0始まりは8進数になるけど、Matcherクラスでは10進のまま
PetternのescapeとMatcherのappendReplacementあたりのソースを見るといい
うまくまとめられてないけど、2ch止まるらしいので今のうちに書いとく

353:デフォルトの名無しさん
08/01/11 17:24:33
APIソース見てるんですか!
そこまで頑張らなくてもどこかにあるJavaのフォーラムで質問した方がいいんじゃないですか?


354:デフォルトの名無しさん
08/01/11 17:39:56
質問者よりも回答者の方が問題解決に躍起になってるスレ。

355:デフォルトの名無しさん
08/01/11 20:10:07
sedを使ってC言語のコメントを全て削除するにはどうやればいいんですか?
コメントが1行に収まっているなら簡単なんだけど、複数行にまたがる場合にどうすればいいかわからない

356:デフォルトの名無しさん
08/01/11 20:22:05
>>355
パターンスペースとホールドスペースを駆使すればできなくはないが、お勧めできない。
awkかperl、或いは最近のスクリプト言語を使う方がいい。

357:デフォルトの名無しさん
08/01/12 08:24:05
俺には無理ぽ
---------------------------------------
# decom.sed
/\/\*/ {
:loop
/\*\// { b break }
N
b loop
:break
s/\n/ /g
s/\/\*.*\*\///g
}
---------------------------------------

358:デフォルトの名無しさん
08/01/12 08:30:01
URLリンク(main.rtfiber.com.tw)
ちょろっと探したらすぐ見つかったしorz

359:デフォルトの名無しさん
08/01/12 09:21:03
でも>358だと文字列中の/*にも反応しちゃうんだよね。
本格的に使うのは、ちょっと無理。

360:デフォルトの名無しさん
08/01/12 09:51:59
プリプロセッサ指令をプリプロセスで消されないよう加工
 ↓
プリプロセッサにかける
 ↓
加工したプリプロセッサ指令を元に戻す

361:デフォルトの名無しさん
08/01/14 12:03:15
正規表現のエスケープしなくてもいい記号がわからないので、
とにかく記号という記号はエスケープしていて結構カオスになっているのですが、
エスケープしなくてもいい記号一覧とかどっかにありませんか?
!"#$%&'()-=^~\|@`[{;+:*]},<.>/?_
これが
\!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_
こんな感じに・・・

362:デフォルトの名無しさん
08/01/14 12:22:13
半角スペースって普通に半角スペースをいれるか\x20とかくかどっちがいいんですか?

363:デフォルトの名無しさん
08/01/14 12:23:19
普通に半角スペースを

364:デフォルトの名無しさん
08/01/14 12:40:39
>>363
レスありがとう。
普通に半角スペース使うことにしますね。

365:361
08/01/14 15:43:29
完全かどうかはわかりませんがWikipediaにのってました。
というわけで自己解決しました。

366:デフォルトの名無しさん
08/01/14 18:31:15
>362

\s


367:デフォルトの名無しさん
08/01/14 18:36:27
>>366
秀丸じゃ使えないんだよな

368:デフォルトの名無しさん
08/01/14 18:37:44
>>366
つーか、それホワイトスペース一般じゃないか?

369:デフォルトの名無しさん
08/01/14 18:55:23
ホワイトベースに見えた

370:デフォルトの名無しさん
08/01/14 19:43:17
セイラさんにハァハァしすぎw

371:デフォルトの名無しさん
08/01/14 20:00:29
\s は改行にもマッチすることがあるから
半角スペースの代わりにはならないよ

372:デフォルトの名無しさん
08/01/14 22:22:22
特定の英単語が含まれているかをチェックする正規表現を教えてください。
This is a pen.
に対してhisをチェックした場合に引っかからないのが正しいです。

英単語の定義は[A-Za-z]{3,}とする予定で、単語の間はカンマやハイフン、セミコロンなどもあり。
前後が[^A-Za-z]だけだと行頭行末がダメ。。。


373:デフォルトの名無しさん
08/01/14 22:23:48
>>372
\b

374:デフォルトの名無しさん
08/01/14 22:28:09
非語境界ってやつだな。

375:372
08/01/14 22:28:22
>>373
ありがとう。知らんかった。首吊ってくるわ。。。

376:デフォルトの名無しさん
08/01/14 22:41:54
イ`

377:デフォルトの名無しさん
08/01/14 22:44:30
\sはタブにもマッチするな
まあ既に>>368が言ってるけど

378:デフォルトの名無しさん
08/01/17 16:41:25
こんにちは。質問です。

@book{sagan:1954,
author = {Fran\c{c}ois Sagan},
title = {Bonjour Tristesse}
}

こんな感じの文字列(BibTeX)を取り込んでハッシュにするためには
どのような正規表現を用いればよいでしょうか。

ポイントは
 1. コンマで分割する。
 2. {}の中のコンマは無視する。
というあたりだと思うのですが、特に括弧の入れ子をどう処理するかで困っています。

使用言語はRubyです。よろしくお願いします。

379:デフォルトの名無しさん
08/01/17 19:22:45
正規表現は再帰をあつかえない。即ち括弧の対応を確かめることが出来ない。
上限をハードコードするなら可能ではあるが、普通にパーサを書いたほうがいいと思う。

380:デフォルトの名無しさん
08/01/17 21:31:48
新しいPerlへようこそ

381:デフォルトの名無しさん
08/01/18 13:21:50
>>380
新しい Perl でも、正規表現 *だけ* では無理じゃね?

382:デフォルトの名無しさん
08/01/18 19:34:46
ソースコードやXMLはネスト構造を持つから正規表現は向かないよな。
Javaとかもソースコードパーサー用の汎用クラスがあるけど、何故か使われなかったり。
BNF法の知識がデベロッパレベルで浸透してないから、無理も無いけど。

383:デフォルトの名無しさん
08/01/24 09:57:54
仕用言語はPHP5.2.4です。UTF-8での運用をしております。
テキストの中のURLをリンクしたいのですが、

$pat = "(https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$rep = "<a href=\"\\1\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat, $rep ,$body);

これだと、2ちゃんねるみたく、ttp:から始まったURLの場合リンクできません。
無駄だと思いつつも書き方がわからないので、下記の処理を付け加えましたが、
 <a href="hoge">hoge</a>
↑この部分が何故か文字化けしてしまいます。

$pat2 = "[^h](ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$rep2 = "<a href=\"h\\1\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat2, $rep2 ,$body);

スマートに書く方法を教えてください。

384:デフォルトの名無しさん
08/01/24 10:34:25
すまない
ageさして下さい

385:デフォルトの名無しさん
08/01/24 10:51:13
>>383
[^h] じゃなくて h? じゃない?

386:デフォルトの名無しさん
08/01/24 11:20:57
>>385
dです
ご指摘のように

$pat2 = "h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$rep2 = "<a href=\"h\\1\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat2, $rep2 ,$body);

こうすることで動きました
ありがとうございました

387:デフォルトの名無しさん
08/01/24 14:34:41
h?っていらなくない?

388:デフォルトの名無しさん
08/01/24 14:46:58
http: ってちゃんと書いたときに h が増殖しちゃわない?

389:388
08/01/24 14:51:28
スマソ、勘違い。

h? を省くと、 http: ってちゃんと書いたときに、こんなふうに h が出てきちゃう。
h<a href="URLリンク(hoge)<)</a>

390:デフォルトの名無しさん
08/01/24 21:19:55
全体を括弧でくくってそれをテキストに指定、
内側のh?(~~をリンクに指定すればいいと思う。

391:デフォルトの名無しさん
08/01/24 21:49:52
$test = '<a href="URLリンク(localhost)">LINK29</a>';
$test = preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}' ,page_href('$1') ,$text);

上記の正規表現で得た29という数字をpage_hrefという関数に渡したいです。
29という数字は取れているみたいですが、関数内には29という数字が渡ってきておりません。
preg_replace内でどうすれば関数に数字を渡せますか?

ちなみにPHP5系です。

392:デフォルトの名無しさん
08/01/24 21:52:25
preg_replace内の$textは$testです
すみませんでした

393:デフォルトの名無しさん
08/01/24 23:30:33
>>390
kwsk

394:デフォルトの名無しさん
08/01/24 23:58:17
>>393
$pat2 = "(h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+))";
$rep2 = "<a href=\"h\\2\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat2, $rep2 ,$body);

↑こういうことじゃね?

395:デフォルトの名無しさん
08/01/25 00:14:49
>>391
そのくらいの正規表現ならPHP使いなら大抵知ってるからPHPスレでいいと思うよ

で、関数に引数を渡すにはその引数を評価してからじゃないと渡せない
というわけでまずは preg_replace() の引数である page_href('$1') を評価する
でもこの時点で preg_replace() は評価されてないので $1 は未定義

preg_match() を使って二つに分けて書くのが普通だろうけど
どうしても preg_replace() ひとつで済ませたい場合は e 修飾子を使ってこう書く

$test = '<a href="URLリンク(localhost)">LINK29</a>';
print preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}e', 'page_href($1)', $test);

ただこういう謎コード書いて冷たい目で見られても知らない

396:デフォルトの名無しさん
08/01/27 10:16:29
BREGEXPのC言語のラッパーライブラリがあったら教えてください。
BREGEXPでなくても他に使いやすいライブラリがあれば教えてください。

397:デフォルトの名無しさん
08/01/27 11:14:06
C 言語なら PCRE とか鬼車で良いのではないかと。

398:デフォルトの名無しさん
08/01/27 12:52:37
>>396
元々Cだしなぁ。ラッパーに何を期待してる?

それはそれとして、素のBREGEXPは古いのでやめておいた方がいい。
いくつかバグも見つかっているようだし。せめてbregonigにすべきかと。

399:デフォルトの名無しさん
08/01/27 12:55:52
RE *re = ReCompile("/(\d+)/");
if(ReMatch(re, s)) { printf("%s", re->d1); }
ReFree(re);

これくらい簡単なのは確かに欲しい。

400:デフォルトの名無しさん
08/01/27 18:22:16
みんながCのアプリをC++でコンパイル通してくれればfreeもなしで
if (/([0-9]+)/ == str) ...
こうできるけどね。

クラス定義とかしなくていいからさぁ、
C++のランタイムにしてくればモジュール提供する側がラクなんだよなぁ

401:デフォルトの名無しさん
08/01/27 19:22:38
世の中の全てプログラム言語はC++でいいと?

402:デフォルトの名無しさん
08/01/27 19:37:07
C99

403:デフォルトの名無しさん
08/01/29 14:08:08
a b c
aa bb cc
aaa bbb ccc

これのインデントあわせって正規表現だけでできますか?perlです。

404:デフォルトの名無しさん
08/01/29 14:41:11
<A HREF="URLリンク(hogehoge.jp)">URLリンク(hogehoge.jp)
<A HREF="URLリンク(hogehoge.jp)">URLリンク(hogehoge.jp)
…以下続く

という文字列があるのですが、**************の部分に暗号化された文字(例:=7%be%8e%e4)が50文字くらい並んでいて
毎回文字数や形式が変動してしまいます。

<A HREF=" のほうはいいのですが、 HTML上に表示される文字のほうも暗号文字になってしまうので困っています。

正規表現で、HTML上に表示される文字のほうだけ、「リンク」という文字に変える方法はありますでしょうか?

405:デフォルトの名無しさん
08/01/29 15:32:43
>>403
右寄せ?左寄せ?
まあ無理なんじゃない
>>404
pack形式と実行環境書け

406:405
08/01/29 15:42:18
>>404の例は「美人」だと思われるが、それでいいのか?
あとhogehogeやめれexampleにしろ

407:デフォルトの名無しさん
08/01/29 15:55:11
>>404です

実はプログラミングを知らないので、実行環境はテキストです…
秀丸でできればおkです…

408:デフォルトの名無しさん
08/01/29 19:56:06
>>403
正規表現では無理だろう。

幅固定なら awk が楽だが、
最長のに合わせるんだったら perl で普通に
ガシガシ書いてきゃいいんじゃね?

409:デフォルトの名無しさん
08/01/30 00:44:52
perlでweb製作しています。

$txt の中の

href="URL" の中のURLを
http:example.net/test.cgi?url=エンコードしたURL
の形に一括変換したいです。

たとえば
href="URLリンク(search.com)"
href="http:example.net/test.cgi?url=http%3A%2F%2Fsearch.com%2Fstr.cgi?%2Fsearch%3Ffirst%3D1%26p%3D%25BA%25C7%25B9%25E2"
のようにしたいです。

$txt内には複数のhref=""があり、href=""外にもURLがあり、その部分は変換不要です。


$cgi = "http:example.net/test.cgi?url=";
$txt =~ s/(href\=\")([\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\$]*\")/$1&cgi$2/g;

$2の部分をエンコードすればよさげなのでエンコード法を調べてみましたが↓を↑に組み込み方がわかりません。
どなたか、お教えください。
$str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5492日前に更新/160 KB
担当:undef