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


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

正規表現 Part6



1 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:36:04 ]
正規表現(Regular Expression)スレです。

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

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

266 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:43:39 ]
生理の日かアレな人かどちらか

267 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:49:27 ]
javaで20行書くのに、いったい何日かかってんだよ。
速いとこコードを晒せ。それですべて解決する話だろ?

268 名前:デフォルトの名無しさん [2009/08/03(月) 23:55:01 ]
マジキチ

269 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 07:15:52 ]
おはよう!10行くらい書けた?まだかな?

270 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 07:38:06 ]
酔っぱらいに絡まれた感じってこんなんだよな

271 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:03:12 ]
schemeでCSVパーサを書いた
BNF通りのCSVの定義が19行、呼び出し8行、コンビネータパーサ80行

しかしよ、実はCSVのパースなんか全く関係なくて
問題はDecimalFormatのパースじゃねーか

ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/text/DecimalFormat.html
ここにBNFライクな仕様が載ってるから
これをパース後数値にして、コンマ/改行で区切って出力すりゃいい
楽をするならJParsec

272 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:29:37 ]
Javaなら20行で書ける!

273 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:08:46 ]
そもそも大抵の言語は1行にいくらでもつめられるからできて当たり前ww
pythonだと難しいかもな。

274 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:17:44 ]

世間を知らない井の中の蛙



275 名前:204 mailto:sage [2009/08/04(火) 09:41:26 ]
土日は自宅プロバイダの書込制限ですまそ。現状はこんな感じ。網羅的テストはまだ。
エスケープ処理が多重にかかるのでちとわかりにくいかも。

引用符の外側を一撃で取れないので、
内側の退避と復旧手順が入って無駄に複雑になってます。
引用符のパースはjavaでかけるべきだったかな…


/**
* 正規表現パターン文字列と、置換文字列で1セット。上から順に解釈適用する。
*/
public static final String[][] FORMAT_FILTER_ARRAY = {
//////////////////////
//浮動小数点対応
//引用符の中のEだけをEEに退避
{"([^']+)(')([^']+)(E)([^']+)(')([^']+)", "$1$2$3EE$5$6$7"},
//浮動小数点のEをE+に
{"(.*)([#0])(E)([#0])(.*)", "$1$2E\\+$4$5"},
//退避したEEをEに戻す
{"([^']+)(')([^']+)(EE)([^']+)(')([^']+)", "$1$2$3E$5$6$7"},
//////////////////////
// シングルクォート囲みをダブルクォート囲みに
{"(')([^']+)(')", "\"$2\""},
{"''", "'"},
//////////////////////////////
//多重エスケープ対応
//
//多重にエスケープ処理が走るため。\1個でも\を出せるように倍にしておく。
{"\\\\", "\\\\\\\\"}
};


276 名前:204 mailto:sage [2009/08/04(火) 09:43:17 ]
あと、変換対象データが整数の場合だけの処理も入れざるを得なくなった。
小数点を最後に残すExcelの仕様のせい。

/**
* 整数値の後ろの余分な小数点を削除する。
* ここでは引用符は"に、浮動小数点はE+に変換後なので注意。
*/
public static final String[][] DOT_FILTER_ARRAY = {
//////////////////////
//整数の場合の余分な小数点対応(浮動小数点で無い場合)
//引用符の中の.#を..#に退避
//{"([^\"]+)(\")([^\"]+)(\\.#+)([^\"]+)(\")([^\"]+)",
{"([^\"]*)(\")([^\"]*)(\\.#+)([^\"]*)(\")([^\"]*)",
"$1$2$3\\.$4$5$6$7"},
//浮動小数点の#.#E#を#..#E#に退避 上の変換とは重ならない。
{"(.*)([0#])(\\.#+E\\+[0#])(.*)", "$1$2\\.$3$4"},
//上記変換対象にならなかった-つまり..#でない.#+を削除
{"(.*)([^\\.])(\\.#+)(.*)", "$1$2$4"},
//浮動小数点の#..#E#を#.#E#に復旧。引用符の中の外し方がわからない。
{"(.*)([0#])(\\.)(\\.#+E\\+[0#])(.*)", "$1$2$4$5"},
//引用符の中の..#を.#に復旧
//引用符の中にもともと..#があっても、...#になって..#に戻るはず。
{"([^\"]*)(\")([^\"]*)(\\.)(\\.#+)([^\"]*)(\")([^\"]*)",
"$1$2$3$5$6$7$8"}
};

277 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:49:56 ]
これ見たら >>218 とかブン殴りたくなってきたんだが。

278 名前:204 mailto:sage [2009/08/04(火) 09:51:49 ]
20行の成否はどうでもいいんだけど、もし可能であれば教示していただけるとうれしい。
仕事はともかく、美しいコードには感動があるのでね。
(とはいえ、他人が見てわからないコードはよろしくないので、
無理に圧縮した20行より、読みやすい100行の方がいいけど。)

>>224
n回フィルターすると、フィルター相互の矛盾衝突のチェックがn(n-1)必要になるから、
フィルターが増えるほど加速的に困難になる…という趣旨ですよね。
しかし、3行1セットで1個の処理をするフィルターを作成し、
そのセットが他には絶対に影響を与えない堅固なものであれば、
必ずしもn(n-1)にはならないのではないか…と思って手をつけたわけですが…
しかし実際やってみるとそうはなってませんな…引用符処理が誤算でした。

279 名前:デフォルトの名無しさん [2009/08/04(火) 09:56:00 ]
おい、ここはニートのスレですか?

280 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:59:41 ]
なんだなんだ、また日記が始まるのか

281 名前:204 mailto:sage [2009/08/04(火) 10:05:11 ]
いやいや、みなさんオチがついてないと気持ち悪いでしょ。サービスのつもりだったんだけど。
もう一区切りついたんで書き込みやめとくよ。(何が出来て何が出来ないかはわかったという趣旨)
あと>>224さんの'''hoge' 難問ですわ…ご指摘ありがとうございました。

282 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 10:48:27 ]
あーウザかった

283 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:00:43 ]
マジキチ

284 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:21:32 ]
Javaでも20行未満で書けるレベルの処理だろうに。



285 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:31:48 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

286 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:43:50 ]
マジキチ

287 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:52:53 ]
    /:::::::ヽ____/::::::::ヽ、
   丿 ::.__  .:::::::::::::  __  ::::ヽ_       ,. 、       /   /
  / /。 ヽ_ヽv /: /。ヽ  ::::::ヽ    ,.〃´ヾ.、  /  /
 / / ̄ ̄√___丶  ̄ ̄\  ::::| / |l     ',  / /
 | .:::::::::: / / tーーー|ヽ     ..::::: ::|r'´  ||--‐r、 ',   javaなら20行で書ける!!
 | .:::::.  ..: |    |ヽ   .,..ィ'´     l',  '.j '.    javaなら20行で書ける!!
 | :::    | |⊂ニヽ| |  'r '´         ',.r '´ !|  \
 | :    | |  |:::T::::| !  l!     ....:.:.:.:.:.:ヽ、   ,l    \
 \:    ト--^^^^^┤   ゝ、.,_ ---‐‐‐----ゝ、ノ

288 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:34:41 ]
マジキチ

289 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:37:17 ]
>>Javaなら20行でできる
専用スレ立ててやれ

290 名前:デフォルトの名無しさん [2009/08/05(水) 16:35:23 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

291 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 17:57:53 ]
>>289
もう終わった話に一人で何言ってんの?

292 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 18:09:20 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

293 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 23:40:59 ]
perlで7行スレは盛り上がったのになんだこの流れ

294 名前:デフォルトの名無しさん [2009/08/05(水) 23:51:53 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |



295 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 09:14:15 ]
正規表現使うんならperlかpythonあたりいくだろ。javaはないわ。

296 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 09:36:03 ]
正規表現使うのが目的ならな。

297 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 10:22:39 ]
正規表現使わなくてもjavaなら20行未満で書けるよ。

298 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 10:53:47 ]
>>297
おい!できるならとっとと書いてみろよ。
逃げんじゃねーぞこの口だけ野郎が!

299 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:40:55 ]
>>297
あ?どうしたコラ!
はやくしろよ。
また逃げたのかなw 布団被って泣いているのかな?w

300 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:07:24 ]
人にものを頼む態度じゃないな

301 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:25:36 ]
ああん?

 「書ける」 とは言ったが 「書く」 とは言ってない。
 書いて欲しかったら頭を下げてお願いしろ。
 それが礼儀だろ。

・・・って言いたいのか?中学生か、おまいは!

302 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:41:38 ]
と、小学生みたいな発言している人がいますね

303 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 17:35:45 ]
で、いつになったら発表してくれるの?>> 20行クン
今なら30行に負けてあげてもいいと言ってるんだし、
そもそも、こっちは行数なんて問題にしてないから
100行だろうが1000行だろうが好きなだけ費やしてもいいんだよ。
早く書いてごらんよ。どうせ書けないんでしょ?
書けもしないのにテキトーなことを言ったんでしょ?

304 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 18:28:46 ]
怒ってもいいことなんてひとつもない。



305 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 20:07:09 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

306 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 20:11:55 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

307 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:54:49 ]

   /         ドッカン
  / /    ,,_     ドッカン
 ━━━━━'), )=         ☆ゴガギーン
      ∧_∧ヽ\         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   ) 〉 〉_ _ ____      ∧_∧ ∠  おらっ!20行で書いてみろ
     / ⌒ ̄ / "'''"'|    ||     (`∀´ )  \___________
      |   | ̄l    |    |/      /     \
.      |    |  |     |    ||      | |   /\ヽ
       |   |  .|     |    |     へ//|  |  | |
      (   |  .|   ロ|ロ   ゙!l''ヽ/,へ \|_  |   | |
       | .lヽ \ |    |   ヽ\/  \_ / ( )
      | .|  〉 .〉    |    |        | |
     / / / / |     |    〈|      | |
     / / / / |     |    ||      | |
    / /  / / └──┴──┘       | |

308 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 02:26:58 ]
ウケるのは最初の一回だけだぞ。


309 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 10:12:05 ]
夏休みが終わるまではこんな調子が続くだろうからいくら言っても無駄だろうね。

310 名前:デフォルトの名無しさん [2009/08/13(木) 17:30:46 ]
なスレ汚し奉りそ

311 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 22:48:37 ]
置き換えや検索を希望する訳ではないのですが、
[!#-'*-;=?-~]
が一体どういう動きをしているか知りたいです
一応説明では「URL文字にマッチ」となっているのですが、
どこがどのようにしてそれらの文字にマッチするよう働いているのか分かりません
環境は鬼車です

312 名前:311 mailto:sage [2009/08/14(金) 00:06:06 ]
すみません自己解決しました
しばらく調べていたら範囲指定がらみで動いていたということが分かりました
どうもすみません

313 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 19:35:58 ]
●正規表現の使用環境
鬼車

●検索か置換か?
置換

●説明
( から ) までの文字列にマッチ
マッチした文字列中に ABC が含まれている場合は
置換時に ABC を \1 で参照できる正規表現

●対象データ
smp("桁数:" + strABC.length);
smp("行数:" + cnt);

●希望する結果
smp(ABC);
smp();


検索文字列
\([^\)]*?(ABC)?[^\)]*?\)
置換文字列
(\1)
で試してみたのですが、ABCがある行も無い行も全て
smp(); になってしまいました。

どのように記述すればABCを取り出せるのか教えてください。

314 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:48:23 ]
? 付け過ぎ



315 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:25:22 ]
*?(ABC)? の部分が、"何もない" 状態にいきなりマッチするからじゃね?
場合分けの部分を親言語に任せる方が、文字列の否定を使うより楽かもしれない。

316 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:54:46 ]
エディタの置換機能で実現したいので、こうなってます。
.*?の?は、付けておかないと(ABC)?.*?の部分に入ってくれないかと思い付けました。
結果的にマッチしていないので無意味ですが。。。

何か方法はありませんか?

317 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:13:33 ]
3ステップに分ければ簡単だが
(1) smp\(.*(ABC).*\) → xxxxxxxxxxx(\1)
(2) smp\(.*\) → smp()
(3) xxxxxxxxxxx\((.*)\) → smp(\1)

318 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:30:30 ]
ABCがマッチする場合|ABCがマッチしない場合

319 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:59:43 ]
Javaでも20行未満で書けるレベルの処理だろうに。

320 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:02:20 ]
正規表現は魔法じゃ無い!

321 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:16:18 ]
>>319
またお前か。
エディタ上で使うって言ってるだろ。
何調子乗ってんだ?

322 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:18:12 ]
>>319
と言うかその前に、JavaでCSV処理の話はどうなったんだ?
逃げたと思ったらコレだよ。
とっとと書いてみなよ20行君。

いや30行でも100行でもいいからさ。

323 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 07:48:03 ]
この余白はそれを書くには狭すぎる

324 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 13:13:17 ]
鬼車ってなんかエロい



325 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 14:03:04 ]
>>324
kwsk


326 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 14:56:49 ]
>>321
>>322

おいおい、釣りで書いてるだけだろ
なにヒートアップしてんだ


327 名前:デフォルトの名無しさん [2009/08/18(火) 15:00:43 ]
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

328 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 21:57:51 ]
マジキチ

329 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 23:01:57 ]
お願いします。

●正規表現の使用環境
bash(grepかegrepでお願いします。)

●検索か置換か?
置き換え

●説明
2行を1行にまとめたい。

●対象データ
>
(hogehoge.pampam)

●希望する結果
>(hogehoge.pampam)

ワガママ逝って申し訳ないのですが、
できればgrepだけで出来れば最高です。

330 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 23:19:33 ]
>>329
grepに置換機能はないからムリ。

2行毎につなげるだけだったら、
#!/bin/sh
while read line
do
read line2
echo "$line$line2"
done

でよくない?


331 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:16:07 ]
grepで置き換えとか無理だろ。
Javaなら20行未満で書けるレベルの処理だが。

332 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:35:11 ]
>>331
は? 置換だけならJavaでも10行未満でいけるだろ。
それより20行未満でCSV処理はどうなったのかな?
布団被って泣いてるのかな?w

333 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 04:12:55 ]
まー落ち着けよ。

Javaなら20行未満で書けるレベルの処理で大人気ないな

334 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 04:21:09 ]
とりあえず落ち着きませんか?

Javaなら20秒未満で書けるレベルの処理で大人気ないと思いますよ



335 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 07:14:09 ]
これは落ち着いたほうがいいかもわからんね

Javaなら20%未満のやる気で書けるレベルの処理で大人気ないっていう感想を持つ人もいるだろうし

336 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 08:05:54 ]
以上、正規表現もJavaも全く解らない人たちが大喜びの映像をお届けいたしました。

337 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 08:22:25 ]
Javaなら20行未満で書けるレベルの処理で勝利宣言されてもなあ…

338 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:51:23 ]
sedでいいじゃない

339 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:58:45 ]
javaでいいじゃない

340 名前:デフォルトの名無しさん [2009/08/20(木) 08:01:32 ]
viで

341 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:41:35 ]
javaで書ける、って言うけど
どうせ javaで正規表現を書くんだろ?

 pattern = Pattern.compile("\\([^\\)]*?(ABC)[^\\)]*?\\)");

みたいな。やたら \ が増えまくって、かえって見にくい。
ディレクトリの区切り文字の \ にマッチさせるのに

 pattern = Pattern.compile("\\\\");

って \ を4回も書かなきゃならん。 \ 地獄だ。武○士だ!

342 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:05:04 ]
Emacs Lisp の正規表現に比べたら別に大したことない。

343 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:33:59 ]
>>341
ん?
\xがエスケープシーケンスになる言語はみんなそうなんじゃないの?

>>342
うむ。


344 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:41:20 ]
>>343
文字列から生成する場合に限ればな
正規表現リテラルが存在する言語ならそれに付き合う必要はない



345 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:01:57 ]
あーそうだった。忘れてた。thx


346 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:19:05 ]
> pattern = Pattern.compile("\\\\");

ワロス
アホすぎるwww

347 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:43:56 ]
よし、夏休み最後の一週間はJavaを勉強しちゃうゾ! ><

348 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:54:36 ]
>>347
20行係を任ず

349 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:53:56 ]
正規表現を使いこなしてる人でも、間違った正規表現を書いちゃうことってよくあるの?

350 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:57:39 ]
間違った正規表現すら使いこなすよ

351 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:52:56 ]
間違ってる事がわからないから、全部正解

352 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:10:06 ]
想定したパターンが間違ってたってことは割とある
単語の文字列にハイフンが含まれることを考慮してなかったり

353 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:19:40 ]
>>330
すんません、ありがとうございます。
シェルよくわからんのでしたが、すんごい参考になりました。

おかげでなんとか出来ました。
ありがとうございます。

354 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 00:05:17 ]
日本語版でないですかね

Regular Expressions Cookbook
oreilly.com/catalog/9780596520687/
www.amazon.com/dp/0596520689/



355 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:48:49 ]
色々試してみたのですがうまく動かないので教えてください。

●正規表現の使用環境
PHP 5.2.5

●検索か置換か?
検索 & 置換

●説明
絵文字用の文字列変換を考えています。
フォームのテキストエリアに入力された文字列から
##で囲まれた文字列を検索し置換したい。

●対象データ
いい天気ですね##A0F1##!!
(AF01は固定ではないです)

●希望する結果
##AF01##にヒットし、さらにAF01のみに置換したい。

自分が考えた正規表現は /#[2][A-F|0-9]{4}#[2]$/u
ですが、うまく動きません・・どなたかお願いします。

356 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:16:28 ]
PHPはよう知らんが

s/##([A-F0-9]{4})##/$1/g

じゃないのか?



357 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:11:44 ]
>じゃないのか?
って。
そうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。

358 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:12:25 ]
>じゃないのか?
って。
どうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。

359 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:11:15 ]
いま、ものすごくバカっぽいレスを目にした気がした。

360 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:21:38 ]
>どうして質問を質問で返すんだろ。
「質問を質問で返すな」と言い切る自信はないらしい。

361 名前:355 mailto:sage [2009/08/26(水) 11:28:27 ]
>>356
ご返信ありがとうございます。
試してみたのですが、期待した動作にならなかったです。


362 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:28:28 ]
>>357
ろくに回答もせず、人のレスに難癖付けるだけ、か…

哀れだな


363 名前:355 mailto:sage [2009/08/26(水) 14:10:51 ]
あれから、色々自分で試行錯誤して

/#{2}([A-F|0-9]{4}#{2})/

でヒットするところまでは持っていけました。
後はなんとかなりそうなので、がんばってみます。
なんだかスレが荒れてしまったみたいで申し訳ありません。

364 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:19:43 ]
おかしいのがはりついてるせいだから、あんま気にせず。



365 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:26:40 ]
PHPはよう知らんが >>356 のでいけたよ。
# s/.../.../g とかは Perl 特有な演算子なのでそこらへんはよしなに

$str = preg_replace('/##([A-F0-9]{4})##/', '$1', $str);

これでどうですか?

366 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:55:40 ]
>これでどうですか?
って。
どうして質問を質問で返すんだろ。
よっぽど自信がないのか。
なんかバカっぽい。






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

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

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