[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/12 05:03 / Filesize : 104 KB / Number-of Response : 412
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

正規表現 Part7



1 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:16:48 ]
正規表現(Regular Expression)スレです。

質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。

【 前スレ 】 正規表現 Part6
pc12.2ch.net/test/read.cgi/tech/1241537764/

221 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 01:46:36 ]
>>219
/\bりんご\b/

222 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 02:16:16 ]
>>220
りんごの括弧はいらないだろ。

>>221
蜜りんごは?ねぇ、俺の大好きな蜜りんごは?

223 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 05:39:03 ]
www.youtube.com/watch?v=h-mxZ-ijPs8
www.youtube.com/watch?v=yWZWWKOp9qU
www.youtube.com/watch?v=657bBDalKQo
www.youtube.com/watch?v=Fi_YvuAPdNg
www.youtube.com/watch?v=zzNZz590adI
www.youtube.com/watch?v=U3HqWCALUNs
www.youtube.com/watch?v=gUZj2i6U-aw
www.youtube.com/watch?v=iq9s9FJMk_c
www.youtube.com/watch?v=qTemVhatInQ

224 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 07:53:34 ]
>>220-221
ありがとうございます。


225 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 09:08:55 ]
★青葉りんご彡☆

226 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 19:33:34 ]
Javaで鬼車使うには、ランタイムを再コンパイルするしかないの?


227 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 00:57:13 ]
●正規表現の使用環境
JavaScript2.0? ※Firefox3.5.9+Greasemonkey 0.8.20100408.6+WindowsXP Pro SP3

●検索か置換か?
置換

●説明
( と ) ※括弧と括弧閉じを含む文字列を置換したい。

●対象データ
(Update:2010/01/02)

●希望する結果
(Update:2010/02/03)

続きを書きます。

228 名前:277 mailto:sage [2010/05/22(土) 01:00:01 ]
変数の wordsBrf.push(""); の "" の中に\マークを入れたりせずに、
文字列を置換させたいです。


//文字を置換
var wordsBef = new Array();//置換前
var wordsAft = new Array();//置換後

wordsBrf.push("(Update:2010/01/02)");//置換前
wordsAft.push("(Update:2010/02/03)");//置換後

var body = document.body.innerHTML;
var i = 0;

for (i = 0; i < (words.length); i++) {

var w = new RegExp( words[i], "gi" );
var body = body.replace( w, words[i] );

}

document.body.innerHTML = body;

229 名前:277 mailto:sage [2010/05/22(土) 01:06:01 ]
実際には、Webサイトにある更新日 (Update:2010/04/30) という
文字の色を変えるのに使いたいです。※更新”されていない”ものは赤で表示。

TCP Monitor Plus (OGA'sさんのサイト)
hp.vector.co.jp/authors/VA032928/

//バージョン更新チェック
var color = new Array();
var words = new Array();

color.push("#FF0000");

words.push("Ver2.42");//TCP Monitor Plus
words.push("(Update:2010/04/30)");

var body = document.body.innerHTML;
var i = 0;

for (i = 0; i < (words.length); i++) {

var w = new RegExp( words[i], "gi" );
var body = body.replace(w, "<font color='" + color[0] + "'>" + words[i] + "</font>");

}

document.body.innerHTML = body;


どうかよろしくお願いいたします。



230 名前:277 mailto:sage [2010/05/22(土) 01:07:27 ]
説明が下手ですみません。

変数の値に直接エスケープ文字を入れたくないという事です。

よろしくお願いします。

231 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 01:23:34 ]
>>230
本文読んでないけど、メタ文字をエスケープ出来れば済むのならjavascript quotemetaでぐぐるんだ

232 名前:277 mailto:sage [2010/05/22(土) 01:36:41 ]
>>231
(*・∀・)ノこんばんわ。
レスありがとうございます。

quotemetaはPerlでしか使えないのか〜(´・ω・`)と思っていたら、
メタ文字のエスケープ関数のサンプルが載っているサイトがありました。

//追加
function quote(str){
return str.replace(/\W/g, function($0){
return '\\' + $0;
});
};

//変更
var w = new RegExp( quote(words[i]), "gi" );

これで出来ました!
夜遅くにどうもありがとうございました!

233 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:43:12 ]
グローバルフラグを付けなくてもいいようなケースにもグローバルフラグを付けた場合
どれだけ無駄になりますか?とてつもなく無駄ですか?微々たるものですか?

234 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:52:06 ]
検索対象の文字列長による。
グローバルフラグをつけさえしなければ、
最初のマッチング位置以降の文字列は読み込まないので。

ただし、検索対象の文字列の中にマッチングする対象が無い場合は
グローバルフラグをつけた場合と同じぐらいコストがかさむ。

もう作っちゃったなら、性能問題出てから考えたら。

235 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:55:32 ]
>>234
どうもありがとうございます。特に何も感じなかったら気にしないことにします

236 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 02:17:39 ]
●正規表現の使用環境
C# 3.0

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい
{ と } に囲まれた文字列を検索したい

●対象データ
Memo[0]{
[Text] 対象データ
}

●希望する結果
[Text] 対象データ


よろしくお願いします

237 名前:デフォルトの名無しさん [2010/05/30(日) 10:50:00 ]
>>216
亀レスだけど、
\(.*\)
で最長一致検索すれば、一番外側の()である
(い(う)え(おか)き)
にマッチする


ちなみに、\(.*?\)で最短一致検索すれば
"(い(う)"と"(おか)"の2箇所にマッチする

238 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:04:43 ]
強欲マッチってどういう時使うの?

239 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:13:50 ]
例えば文中の全ての数字の並びを抽出したいときに
/(\d+?)/g
とかやると切ないことになる



240 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:29:59 ]
じゃ手放さない(バックトラックしない)強欲マッチは?

241 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:43:24 ]
パフォーマンスだろ。

242 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 01:31:28 ]
よくわかりません。

243 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 08:06:13 ]
鬼車の欲張りと強欲の違いがわからない
ttp://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt

244 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 12:12:44 ]
手放さない欲張りマッチを使って失敗するような場合はあるんですか?

245 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 10:32:38 ]
javascriptです
aiueo
aiue
iueo
にはマッチするけどiueにはマッチしないってどう書けばいいですか?
/a?iueo?/
だとiueにもマッチしてしまって
/a?iueo|aiueo?/
だと期待通りにはなるのですが
重複する記述があるのでまとめられるならまとめたいです
共通する部分がiueじゃなくてもっと複雑になった場合など

246 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 11:08:31 ]
245
自己レスです
/a?(iue)o|a\1o?/
こうかな・・・

247 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 12:26:17 ]
>>246
僕もそう思った。

248 名前:デフォルトの名無しさん [2010/06/06(日) 10:57:14 ]
質問です
javascriptです。

IMG00123123.jpgというような文字列が配列に大量にある。
そんな中で、例えばIMG00000012.jpgを検出したい。
そのものずばりで検索すれば、何も問題はないのですが、
不精をして、12だけで、マッチさせたい場合、どう考えればよいでしょう?



249 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 11:13:15 ]
JavaScriptってsprintfないんだな。意外だ

("00000000" + "12").substr("12".length);



250 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:06:30 ]
Number("IMG00000012.jpg".match(/\d+/)[0]) == 12

251 名前:デフォルトの名無しさん [2010/06/06(日) 12:15:14 ]
>>249
ありがとうございます。

後ろから検索する事と、
文字列の長さを利用して、
"00000000"と"12"を分割する、という考え方ですね。

ちょっと検証してみます。

252 名前:デフォルトの名無しさん [2010/06/06(日) 12:55:22 ]
>>250
あ、ありがとうございます。
現在>>249の考え方で検証中です。。

str:検索対象の文字列(ファイル名)例:IMG012312.jpg
a:検索の為の入力された数値 例:12

c=str.lastIndexOf(a+".")
if(c>-1)
{
d=str.slice(0,c);
e=(d.match(/[1-9]/).length

if(e>0)
{
alert("strは、00000012.jpgではない");
}else{
alert("strは、00000012.jpgだ");
}
おおよそこんな処理になるでしょうか?

253 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:06:18 ]
正規表現もだけど、それ以外のところがボロボロだからjsスレ行ってこい

254 名前:デフォルトの名無しさん [2010/06/06(日) 14:13:08 ]
>>253
エラーだらけですみません。デバッグしてませんでした。
str="IMG001012.jpg ";
a=12;
c=str.lastIndexOf(a+".jpg") ;//後方から"12.jpg"で検索

//引っかかれば、12.jpgの部分がある
//なければ-1が帰ってくる

if(c>-1) {

//検索に引っかかった場合次は、
//文字列strの0番からc-1番までが、
//0以外の文字を含むか検証する必要がある

d=str.slice(0,c); //strの0番からc-1番までを抜出し変数dに代入

//文字列dの中に1から9の任意の値がなければnullが帰ってくる
//strは少なくとも12.jpgではないと言えるので

if((d.match(/[1-9]/g))==null)
{
alert("12.jpgの候補だ");
}else{
alert("12.jpgではない");
}
}
こんな感じで絞り込めました。
後は、imgとかの違いや、0の数での違いをどう処理するかかなと
思いますが、、

255 名前:デフォルトの名無しさん [2010/06/06(日) 14:18:33 ]
すみません。以下訂正します

誤//strは少なくとも12.jpgではないと言えるので
正//strは少なくとも複数の0と12.jpgからなる文字列だといえるので

256 名前:デフォルトの名無しさん [2010/06/06(日) 15:07:04 ]
>>250
n=Number("IMG00000012.jpg".match(/\d+/)[0]);
alert(n);
で検証しました。確かに12ですね。
\d+:任意の数値の1回以上の表現
これで、00000012が配列として抽出される
で、問題は[0]ですが、
これは、もしかして配列の0番ということですか?
こんな使い方が出来るとは知りませんでした。

この手法だと、直接値を比較できますね。
ありがとうございました!!

257 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:50:34 ]
リファレンス嫁

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/String/match
>正規表現が g フラグを含んでいない場合、regexp.exec(string) と同じ結果を返します。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec
>[0] 最後にマッチした文字

配列じゃなくてプロパティ
厳密には配列もプロパティの集まり
つーかjsスレ(ry

258 名前:デフォルトの名無しさん [2010/06/06(日) 16:42:14 ]
>>257
すみませんでした(平謝り)
上記リファレンス、頭から読み直します。
ありがとうございました。

259 名前:デフォルトの名無しさん [2010/06/11(金) 23:05:13 ]
質問させてください。
●正規表現の使用環境 - Mery(エディタ、鬼車ライブラリ)
●説明 - 連続する同じ内容の2行にマッチ、3行以上の部分にはマッチさせない
●対象データ
ABCD
ABCD
EFGH
EFGH
EFGH

●希望する結果
ABCDの2行のみマッチ、EFGHの2行のところ(2箇所)はスルーして欲しい。
---
否定先読みと否定戻り読みを同時に使ってみたところ、
たぶん否定戻り読みの\1の参照が変なため上手くいきませんでした。こんな感じ。
(?<!\1)(^.+\n)\1\1(?!\1)



260 名前:259 [2010/06/11(金) 23:08:36 ]
>>259
すみません。例では「\1」が1個多すぎました。
× (?<!\1)(^.+\n)\1\1(?!\1)
○ (?<!\1)(^.+\n)\1(?!\1)

…どっちみちダメな例ですが、いちおう。。

261 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 04:20:30 ]
捕獲集合より前に参照使おうとしてるからダメ。
鬼車では>>259の問題は解けないと思う。

こういう前方からの参照ができる正規表現エンジンってあるの?

262 名前:デフォルトの名無しさん [2010/06/12(土) 10:25:24 ]
マッチ部分が必要な2行のみにしたいのなら難しい(というかできるか
どうか俺もわからん)けど、そういう行を抽出したいだけなら前の1行も
マッチさせてしまえばいいんじゃね?

$str = <<__STR__;
ABCD
ABCD
EFGH
EFGH
EFGH
__STR__

$re = qr{
(?:
¥A
|
(^.+¥n)
(?!¥1)
)
(
(^.+¥n)
¥3
)
(?!¥3)
}xsm;

while ($str =~ /$re/g) {
print "<<<¥n$2>>>¥n"
}


263 名前:259 [2010/06/12(土) 13:32:11 ]
>>262
どうもありがとう! それで上手くいきました。

が、便乗ですみませんが、よろしければもう1つ質問させてもらえますか。
>>262の非捕獲式集合 "(?:)" を消そうと思うと上手くいきません。

"(?:)" を"()" に変え、 後方参照が1つ増えたので、"\3" を "\4" に変えると
同じものになるはずだと思うのですが。。

○ (?:\A|(^.+\n)(?!\1))((^.+\n)\3)(?!\3)
×  (\A|(^.+\n)(?!\1))((^.+\n)\4)(?!\4)

264 名前:259 [2010/06/12(土) 13:43:31 ]
>>263
cf.
無理矢理ほんの少しだけ見やすくしてみました。

○ --- (?: \A|(^.+\n)(?!\1) )  ( (^.+\n)\3 ) (?!\3)
× ---  ( \A|(^.+\n)(?!\1) )  ( (^.+\n)\4 ) (?!\4)

265 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:03:18 ]
( \A|(^.+\n)(?!\2) )  ( (^.+\n)\4 ) (?!\4)

266 名前:259 mailto:sage [2010/06/12(土) 14:50:02 ]
>>265
!!!!!!
!!!!!!

…かなり長時間悩んでいたので、信じられないくらいすっきりした。
ありがとう。

267 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 09:25:15 ]
((^.+¥n)¥2)(?<!^¥2¥2¥2)(?!¥2)

というのを試してみたら可変長戻り読みでエラーになっちゃった。
これ戻り読みするときには¥2は確定してるんだからなんとかならん
のかなぁ。

268 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 03:14:38 ]
まぁまぁ初心者なんだが、
/aaa/ ・ /aaa bbb/ と2回やるのと、/aaa( bbb)[0,1]/ とまとめるのでは、
一般的に言ってどっちが速い・軽い・負担少ないの?
対象データとの兼ね合いもあるだろうが、どっちの方が好ましいの?

269 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 03:18:12 ]
後者じゃないの。
10万回くらい回すテストプログラム作ってみたらいいと思う。

あと、/aaa( bbb)[0,1]/じゃなくて/aaa( bbb){0,1}/ね。
もっと言うと/aaa( bbb)?/の方が簡潔。



270 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 03:19:36 ]
訂正
×: /aaa( bbb)[0,1]/
○: /aaa( bbb){0,1}/

271 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 03:21:17 ]
おっとすれ違った。ありがとう

>/aaa( bbb)?/
なるほど!

272 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 15:08:05 ]
perlスクリプト中に含まれる

use utf8;
use encoding "cp932";
use encoding 'euc-jp';
use   encoding   "iso-8859-2";

などの文にマッチして、「utf8」「cp932」「euc-jp」「iso-8859-2」の部分のみ取り出したいのですが
一発でできる方法があったら教えてください。

273 名前:デフォルトの名無しさん [2010/06/19(土) 15:11:49 ]
248です。先日はありがとうございました。
アルファベット+数値.jpgのパターンはうまく認識するコードができました。
ただ新たな問題も発生しました。以下のようなパターンです。
日本語の文字化けと、スペースがあるパターンでは、数値を正確に拾えませ
んでした。

画像_000012.pg
%E7%94%BB%E5%83%8F_000012.jpg

画像 000012.jpg
%E7%94%BB%E5%83%8F%20000012.jpg

画像 000012.jpg
%E7%94%BB%E5%83%8F%E3%80%80000012.jpg
文字化け部分を無視して、数字の部分だけを検出する方法を得たいのですが
どうしたらよいでしょうか?

日本語とスペースの部分は(%..)*と、まとめられますが
これを除いた数値部分\d+だけをマッチの対象としたい場合
以下の表現でよいでしょうか?

(?:(%..)*)\d+


274 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 15:19:55 ]
>>272
| を使えばまあ1つにはできるだろうけど

275 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:03:30 ]
>>272
^use\s+(encoding\s+)(?(1)["']|)(.*?)\2;$

こうですか?分かりません><

276 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 05:14:30 ]
●正規表現の使用環境
秀丸 または AHK

●検索か置換か?
検索 / grep

●説明
テキストファイルを複数キーワードで検索したい
(通常のウェブ検索のようなものを正規表現で行いたい)

●対象データ
text1 [tag1][tag2]
text2 [tag2][tag1]
text3 [tag2]
text4 [tag3][tag1]
text5 [tag3]
text5 [tag1][tag3][tag2]

●希望する結果
[tag1] および [tag2] で検索した場合、以下がヒット

text1 [tag1][tag2]
text2 [tag2][tag1]
text5 [tag1][tag3][tag2]

277 名前:276 mailto:sage [2010/06/23(水) 05:15:20 ]
どなたか >>276 についてアドバイスをいただけないでしょうか。
宜しくおねがいいたします。

278 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:06:03 ]
\[tag(1|2)\]

279 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:50:32 ]
[tag1] と [tag2] 両方含む行を拾いたいんじゃまいか

>>276
(?=.*\[tag1\])(?=.*\[tag2\])
ただ秀丸の正規表現が先読みに対応してないと動かない



280 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 00:09:27 ]
>>279
ありがとうございます。試してみたところ、秀丸では動きませんでした。
先読みには対応しているようなので、何か別の工夫がいるのかもしれません。
秀丸スレで質問してみます。

281 名前: ◆/91kCCQXBo mailto:sage [2010/06/25(金) 00:53:42 ]
((.*tag2.*)(.*tag1.*))|((.*tag1.*)(.*tag2.*))

282 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 17:47:50 ]
>>280
(?=.*\[tag1\])(?=.*\[tag2\])
でも
^(?=.*\[tag1\])(?=.*\[tag2\])
で動いたぞ。ただ、実際に0文字にマッチしているので、
範囲としては見えない。分かりやすいのがよければこれだな:
^(?=.*\[tag1\])(?=.*\[tag2\]).*

283 名前:デフォルトの名無しさん [2010/06/27(日) 22:26:13 ]
●正規表現の使用環境
VBScript

●検索か置換か?
置換

●全角英数字を全て半角英数字にしたい
1文字1文字Case文でそれぞれを置換するしか方法ないですかね?

284 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:11:55 ]
正規表現じゃ無理。StrConvでググリなさい。

285 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:17:06 ]
ていうかマルチポストしてんならそう書きなさい。
あと死んでください。

Excel VBA 質問スレ Part15
pc12.2ch.net/test/read.cgi/tech/1271261239/692

286 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 19:29:23 ]
●正規表現の使用環境
Perl

●検索か置換か?
置換

●説明
文章の全部のurlを下記のように”&”のあとを削除したい

●対象データ
ttp:\\www.example.com\c?ro=1&act=rss&output=no
......

●希望する結果
ttp:\\www.example.com\c?ro=1
......

287 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 20:53:29 ]
/&.*//

288 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 21:04:22 ]
一行にURLだけしか入ってなければそれでもいいのだが

289 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 12:21:22 ]
秀丸エディタとかでちょっと正規表現使った置換とかしたい時に
\fで区切ってたんだけど、要素が10以上になるとうまく指定できない……



290 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:35:23 ]
自己解決

291 名前:デフォルトの名無しさん [2010/07/04(日) 23:25:25 ]
●正規表現の使用環境
JavaScript

●検索か置換か?
置換

●説明
「サーバー」を「サーバ」に置換したい
「サーバーサイド」「サーバー設定」は除外したい

●対象データ
つまりサーバーのあれこれ
しかしサーバーサイドのなんたら
なお、サーバー設定は云々

●希望する結果
つまり、サーバのあれこれ
しかしサーバーサイドのなんたら
なお、サーバー設定は云々


292 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 23:59:32 ]
サイドと設定以外のサーバーを全部サーバにするってことかな?

.replace(/サーバー(?!(サイド|設定))/g,"サーバ")

293 名前:デフォルトの名無しさん [2010/07/05(月) 08:15:02 ]
>>292
そうです。ありがとうございました!

梟で勉強します!

294 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 14:04:37 ]
梟より最近出た料理本の方があんたのような人間には良いんじゃないか。

295 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 15:59:11 ]

こういう皮肉を言う人間にはなりたくないな。

296 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 16:37:34 ]
どこが皮肉なんだろ?
おれも >>291 にはクックブックの方がいいと思うけど。

297 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 18:12:56 ]
>>1は料理本が出る前のテンプレだよなあ。
このスレの質問は、初心者ばかりだから、梟じゃわけわからんことが多いだろう。

298 名前:293 [2010/07/05(月) 19:29:54 ]
おっしゃる通り、初心者です
梟本は持ってるんですが、確かに難解で中々身についてる感じがしないです
専門書と言うか辞書を読んでる感覚で頭で分かったつもりになるだけと言うか…

料理本、よろしければURLか正式タイトル教えて頂けませんか?



299 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:09:02 ]
正規表現クックブック
www.oreilly.co.jp/books/9784873114507/

いろんな実例が載ってるから便利でいいと思うよ。



300 名前:298 [2010/07/05(月) 20:53:05 ]
>>299
買いました!
これのが易しそうですね
ありがとうございます

皆さんはハンドブックやクイックリファレンスみたいなの持ってますか?

301 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:33:53 ]
持っていない。
料理本も他人に推奨しながらまだ買ってないし、梟も2版だけどね。

3版で2版にない良いところがあったら教えてほしいとこr。

302 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:37:51 ]
フクロウ本で否定の先読みが出てくるのって2章じゃないか
難解とかいう以前に読んでないんだろう

303 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:49:53 ]
質問です
●正規表現の使用環境
JavaScript

●検索か置換か?
置換

●説明
「チョコレート」を「チョコ」に置換したいです
でも「板チョコレート」「バレンタインチョコレート」はヒット(置換)させたくないです

●対象データ
やはり板チョコレートよりも
バレンタインチョコレートよりも
自分で買うチョコレート!

●希望する結果
やはり板チョコレートよりも
バレンタインチョコレートよりも
自分で買うチョコ!


(!(バレンタインチョコレート|板チョコレート)チョコレート),チョコ/g
…ダメです。やっぱ難しいです。

304 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:04:27 ]
(?<!板)(?<!バレンタイン)チョコレート

305 名前:276 mailto:sage [2010/07/07(水) 00:36:58 ]
久しぶりに戻ってきて、続きのコメントがあったことに気付きました。
>>282 さんがおっしゃる通りでした。0 文字マッチで動いてたんですね。
結局最後のものを使わせていただきました。
ありがとうございました。

306 名前:303 [2010/07/07(水) 12:28:01 ]
>>304
上手くいきません
「<」って、どう言う意味なんですか?



307 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 13:14:47 ]
この先生き残る、の逆verかw

308 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 14:08:25 ]
>>306
JavaScriptは戻り読み使えないのか。ごめん
(?<!...) で否定の戻り読み。「左に"板"も"バレンタイン"もない"チョコレート"」って意味

これならどうだろ

var s = "やはり板チョコレートよりも\nバレンタインチョコレートよりも\n自分で買うチョコレート!";
s..replace(/(板|バレンタイン)?チョコレート/g, function(str, p0){ return p0 ? str : 'チョコ'});

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Regular_Expressions
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/String/replace

309 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 17:39:20 ]
行頭のひとつ、または連続するスペースの
それぞれひとつひとつを全て検索対象にする
(連続したものをひとまとまりとして扱うのではなく。そして文中のスペースは対象にしない)
には、どう書けばいいですか?



310 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:33:14 ]
自己解決しました

311 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:46:20 ]
どんな風に解決したか書いてくれよ。

312 名前:309 mailto:sage [2010/07/07(水) 19:30:22 ]
>>310は自分じゃないけど
でも実際自己解決しました
解決って、その通りのことができたわけじゃないんだけど
やろうとした目的は果たせたんで、おkとします

>>310さん、せっかくすばらしい人間性を披露してくださったのに
あなたがワクワク期待してたような反応してあげられなくて、ごめんなさい

313 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 19:34:21 ]
つか報告だけなら来なくていいよ。

314 名前:デフォルトの名無しさん [2010/07/08(木) 09:42:56 ]
>>308
動かないっす(;´Д`)
ブラウザはFF

JavaScriptに限らずVBscriptでも動けばいいと思ったんですが
厳しそうですね…

これって、やろうとしてる事は前方参照否定になるんですかね?

315 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 13:16:00 ]
>>314
x s..replace
o s.replace

316 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 17:54:33 ]
●正規表現の使用環境
PHP5

●検索か置換か?
検索

●説明
[[ と ]] に囲まれた文字列を配列で取得したい

●対象データ
[[hare]][[ame]][[kumori]][[yuki]][[]][[kaminari]][[taifuu]]

●希望する結果
matches[0] = hare
matches[1] = ame
matches[2] = kumori
matches[3] = yuki
matches[4] =
matches[5] = kaminari
matches[6] = taifuu

よろしくお願いします。

317 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 07:36:38 ]
最近、正規表現ってことばをよき聞きますが
これってどんな人がどんな時に使うんでしょうか?
ぐぐって調べてもイマイチ意味が分かりませんし
いったいどんな人が使ってるのか疑問です。
自分みたいにパンピーは知らなくても無問題でしょうか?

318 名前:314 [2010/07/09(金) 08:25:23 ]
>>308,315
ありがとう!
でも正規表現だけだと、無理って事?


>>317
君は知る必要ないね
一般事務職でも使うケースはあるけど
ワイルドカードだけ取り敢えず覚えておいては?
と、正規表現初心者の俺が(ry

319 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 10:43:04 ]
MS-DOS時代の人間なんで
ワイルドカード(*、?だけですけど)の使い方は分かってます。



320 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 11:22:26 ]
正規表現を使うソフトと出会ったら勉強すればいい。
出会ってもないのに知る必要はないと思う。

321 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 15:36:10 ]
正規表現とワイルドカードを一緒くたにすると
怖いお兄さん(お姉さんも可)に怒られるからよい子は注意な






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<104KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef