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


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

正規表現道場



1 名前:nobodyさん [2007/01/11(木) 02:40:43 ID:uW7xEbZY]
【正規表現道場の掟】

・言語不問

・質問も大歓迎。使用言語を書くのを忘れずに。

正規表現と関係ない話・質問は他スレへどうぞ。

453 名前:nobodyさん [2009/01/22(木) 00:53:40 ID:2qACQkO/]
正規表現で$文字を含む検索や置換ってど〜してます?

454 名前:nobodyさん mailto:sage [2009/01/22(木) 01:00:03 ID:???]
お前は何を言ってるんだ

455 名前:nobodyさん mailto:sage [2009/01/22(木) 02:57:05 ID:???]
>>453
$は海外の通貨記号なのでうまくいかない。
\$のようにローカルな通貨記号を重ねればうまくいく。

456 名前:nobodyさん mailto:sage [2009/01/22(木) 03:22:48 ID:???]
>>455
何言ってんだこいつ

457 名前:nobodyさん mailto:sage [2009/01/22(木) 17:35:54 ID:???]
<br>***********

-----

上記のような文字列で「*」には日本語と英語が混ざっています。
そこで、、<br>から-までの間から、英語文字だけを削除するような正規表現って無いでしょうか?
<br>から-の部分は改行が入ってます。
ご存知の方居られましたら、よろしくお願いします。

458 名前:nobodyさん mailto:sage [2009/01/22(木) 17:45:32 ID:???]
>>457
>無いでしょうか?

そりゃつくりゃあるだろ

459 名前:nobodyさん mailto:sage [2009/01/22(木) 17:56:19 ID:???]
>>458
すみません。言葉足らずでした。
普段Speeeeedをいうソフトを使っているのですが、これで>>457は可能でしょうか?


460 名前:nobodyさん mailto:sage [2009/02/01(日) 00:44:32 ID:???]
>>459
ここ正規表現のスレ
ソフトの使い方はスレ違い、ソフトウェア板へどうぞ

461 名前:OraOra [2009/02/01(日) 01:57:15 ID:2VNzjYUZ]
検索文字の中であるパターンの検索の仕方が
分からず困っています。

どなたか御教授お願いします。

プラットフォームはOracleのPL/SQLです。

検索対象は以下の日付書式の文字です。
'yyyymmdd hh24:mi:ss'

以下のように正規表現の結果を関数で受取り
その結果をチェックしています。

bool_result := regexp_like('20080230 11:20:22','(20)[0-9]{2}(0[1-9])|1[0-2])(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-4]):([0-5][0-9]):([0-5][0-9])');

if bool_result then
dbms_output.put_line('OK');
else
dbms_output.put_line('NG');
end if;

現状では上記の正規表現で'0230'、'0231'のチェックが出来ず困っています。

上記の正規表現の中で'0230'、'0231'も含めてチェックする方法を
ご存知の方いましたらどなたか御教授お願いします。



462 名前:nobodyさん [2009/02/02(月) 21:43:16 ID:H9hEncfV]
「id="72157612930889935" primary="3224910389" secret="be0cf48b4f" server="3468" farm="4" photos="131" videos="0"」という文字列から、
「id=""」の数字を抜きたいのですが(この例であれば「72157612930889935」が欲しいです)

$patern = 'id="(.*)" ?';
ereg($patern,$line,$id);
echo $id[1]."<br />\n";

では最後のvideosの終わりのダブルコーテーションまで入ってしまいました。

>>421に近いと思うのですが?で最短マッチ?になるような気もしますし
>>412にあるように?は0か1回の繰り返しのようにも思うし…。
OSはCent4系、PHP4.1.3、関数はeregを使いました。どなたか助けて下さい

463 名前:nobodyさん mailto:sage [2009/02/02(月) 21:51:38 ID:???]
id="([0-9]*) とか・・

464 名前:462 [2009/02/02(月) 21:55:09 ID:H9hEncfV]
>>463
神!ありがとうございました。
?は結局使わず終いでしたが?とか難しいのを使うよかよっぽどスマートす。

465 名前:nobodyさん mailto:sage [2009/02/05(木) 13:33:36 ID:???]
?と*の意味を知ってたら難しいとかの発言にはならない

466 名前:nobodyさん mailto:sage [2009/02/06(金) 11:54:32 ID:???]
だよね。
{0,1}か{0,1,2,3...}かの違いだけだ。

467 名前:nobodyさん mailto:sage [2009/02/06(金) 16:00:49 ID:???]
質問する人は最低限基本は知ってて欲しいと思う今日この頃

468 名前:nobodyさん mailto:sage [2009/02/10(火) 00:16:26 ID:???]
F, f, t, S, P が正規表現のとき、
FtSPPP または FfSPPPP は
F(tS|fSP)P{3} より短くなりますか?

PPP と PPPP ではなく X と Y (Fの直後に来るものによってSの後に来るべきものがまったく違う場合) には応用可能でしょうか?

469 名前:nobodyさん mailto:sage [2009/02/10(火) 00:53:38 ID:???]
F(tS|fSP)PPP

470 名前:nobodyさん [2009/02/23(月) 09:51:32 ID:0L52Pp6H]
.*?
これの意味を教えて下さい。

471 名前:nobodyさん mailto:sage [2009/02/23(月) 10:49:52 ID:???]
「.」はカニだな
「*」は0匹以上の生息してるやつ最後まで
つまり、「.*」でカニがいるだけ全部を捕り尽くすという意味(昨今の乱獲問題)

そこで捕り尽くしたら絶滅するという問題を受けて「.*?」という思想が考え出された
意味は、最初にカニがいたらその一匹を捕まえて漁を止めるということ



472 名前:nobodyさん [2009/02/23(月) 15:41:23 ID:0L52Pp6H]
>>471
では、 .*? と .? の違いを教えて下さい。

473 名前:nobodyさん mailto:sage [2009/02/23(月) 17:58:21 ID:???]
>>472
「.」はカニだな
「?」は捕れるかとれないか分らないがとりあえず努力するという意味
つまり、「.?」で幻のカニ探索するという意味

474 名前:nobodyさん [2009/03/02(月) 19:46:41 ID:/g2x4kDh]
phpです。
たとえば普通に
google.co.jpと書いてあるものと
<a href="google.co.jp">test</a>と書いてある文字列があります。

この文字列内のタグになってないUrlをAタグでリンクを張りたいんですがどうしたらいいでしょうか。


475 名前:nobodyさん mailto:sage [2009/03/02(月) 21:22:30 ID:???]
httpから始まり、半角英数字と.?&%が含んでるか見ればおk

476 名前:nobodyさん mailto:sage [2009/03/05(木) 18:30:50 ID:???]
>>471
先生 ノシ
「.*?」で最初の一匹目のカニも取れませんでした。
でも幻のカニは取れたみたいです。

477 名前:nobodyさん mailto:sage [2009/03/11(水) 00:46:27 ID:???]
*.2ch.net/*/test/bbs.cgi*
これを正規表現にすると、どうなりますか?


478 名前:nobodyさん mailto:sage [2009/03/11(水) 01:27:39 ID:???]
*.2ch.net/*/test/bbs.cgi*

479 名前:nobodyさん mailto:sage [2009/03/11(水) 11:15:58 ID:???]
>>477
"{^https?://[0-9a-zA-Z]*\.2ch\.net/[0-9a-zA-Z]*/test/bbs\.cgi[0-9a-zA-Z/_-]*$}"

480 名前:nobodyさん mailto:sage [2009/03/20(金) 02:34:11 ID:???]
phpのクラスファイルの特定の関数を正規表現で抜き出したいのですが可能でしょうか?

例 class.test.php から public function test($a){ 本文 }

スケルトンコードの場合簡単に抜き出せるのですが、
本文中にif,swichなどで } が存在した場合どうすれば良いのか悩んでいます。

481 名前:nobodyさん mailto:sage [2009/03/20(金) 04:11:43 ID:???]
{が出たら探す}を1つ増やせばいいじゃん



482 名前:nobodyさん mailto:sage [2009/03/20(金) 22:15:43 ID:???]
言語は
BoostライブラリBoost.Xpressiveか、Boost.Regexか、Boost.Spirit
です。(標準C++,コンパイラg++。)

括弧の対応のバランスがとれているならマッチさせるという正規表現はどう書けますか?
boost::xpressive::sregex parens;
parens = *( '(' >> by_ref(parens) >> ')' );
だと
 ()→マッチ
 ()()→マッチ
 ()(()((()))())→マッチ
 (()))))→マッチしない
です。
私としては(1+3)*(4+(8-9))の様に括弧以外の文字が含まれていても括弧のバランスがとれているか判定できるようにしたいのですが。
ただし括弧としては ( か ) だけを想定し、{}[]などは判定の対象にはせず、数式として成り立っているかどうかなども判定せず、あくまで ( と ) のバランスだけを見たいです。



483 名前:nobodyさん mailto:sage [2009/03/20(金) 22:25:59 ID:???]
>>481
できました、ありがとうございました。
こんな感じで、簡単でしたね、、、

 /function test.*?\{.*? (\{.*?\}.*?)*? \}/s

484 名前:nobodyさん mailto:sage [2009/03/20(金) 23:13:32 ID:???]
echo内の { } にも対応してみました。
これでほぼ完璧かなぁ、、、
/public\sfunction\stest_if_text.*?\{.*?(\{.*?("(.*?\{*?.*?|.*?\}*?.*?)*?".*?)*?\}.*?)*?\}/s

485 名前:nobodyさん mailto:sage [2009/03/20(金) 23:18:29 ID:???]
センスねえな
ムダがおおい

486 名前:nobodyさん mailto:sage [2009/03/20(金) 23:28:45 ID:???]
関数名だけで対応すると
/[public|private|protected]+\s+[static]?\s?function\s+関数名.*?\{.*?(\{.*?("(.*?\{*?.*?|.*?\}*?.*?)*?".*?)*?\}.*?)*?\}/s
こんな感じかなw
読みやすさ優先で記述してるからセンスは勘弁してくださいw

487 名前:nobodyさん mailto:sage [2009/03/24(火) 08:12:11 ID:???]
>>482
正規表現だけじゃ無理じゃね?

488 名前:nobodyさん mailto:sage [2009/03/24(火) 09:59:04 ID:???]
>>482
正規表現じゃ数学的に不可能。有限状態オートマトンなので閉じられてない
開きカッコの数を高々状態数までしか憶えられないからそれを越えた時点で
アウト。

Perlの正規表現みたいに再帰的なパターンが書けるように拡張されてると
別だけどね。

489 名前:487 mailto:sage [2009/03/24(火) 10:07:28 ID:???]
>>482
BoostのXpressiveならby_ref()があるから再帰的に書けないこともないハズ。
でもよーわからん。
Spiritが使えるならそっちのが楽そうじゃね?

490 名前:nobodyさん mailto:sage [2009/03/24(火) 10:20:21 ID:???]
「高々状態数」の意味がわかりません。

491 名前:nobodyさん mailto:sage [2009/03/24(火) 10:38:59 ID:???]
数学じゃよくでてくるけどね、「高々」とか「状態数」とか



492 名前:nobodyさん mailto:sage [2009/03/24(火) 10:40:15 ID:???]
>>491
俺は初めて聞いたぞ。
たかだかはよく出て来るけど(例:たかだかn次の〜)
状態数は物理学の用語じゃね?

493 名前:nobodyさん mailto:sage [2009/03/24(火) 12:16:31 ID:???]
お前ら正規表現スレにいて有限状態オートマトンもわからんのか...
いくらなんでもゆとりすぎるだろ

494 名前:nobodyさん mailto:sage [2009/03/25(水) 10:08:36 ID:???]
文字xが10個以上である場合にマッチさせるのに
x{9}x+

x{10}x*
は共に等価でOKだとおもうが、
一般論で言うとどちらが速い動作になる?

495 名前:nobodyさん mailto:sage [2009/03/25(水) 10:43:53 ID:???]
どっちも同じ動作なんだから同じじゃね
それよりももう少し改良できると思うんだがな

496 名前:nobodyさん mailto:sage [2009/03/25(水) 12:38:18 ID:???]
実装次第で一般論ではなんともいえないと思われる。

どっちを食わせても全く同じオートマトンに変換してから実行するの
でぴったり同じになる実装、なんてのもあるかもしれないし、
逆になぜか+が不得意な実装とか*が不得意な実装とかあるかも
しれない。モノによっては{..}が不得意でxを並べたほうがいいと
いうことも考えられるな。

497 名前:494 mailto:sage [2009/03/25(水) 15:11:33 ID:???]
>>495-496
なるほど。
ありがとう。。。

498 名前:中山 [2009/03/29(日) 09:39:01 ID:MqxV8vA3]
PHP 正規表現について

$str = 'test1?test2/test3;test4';

この文字の
test1
test2
test3
test4
を取り出すにはどうしたらよいでしょうか?

この価を
data1=test1&data2=test2&data3=test3&data4=test4
と変換したいです

preg_replaceを使っています
$str = preg_replace("・^([a-zA-Z0-9]+\?+[a-zA-Z0-9]+)\/+[a-zA-Z0-9];+[a-zA-Z0-9)$・","data1=$1&data2=$2&data3=$3&data4=$4",$str));


これではダメみたいです

499 名前:nobodyさん mailto:sage [2009/03/29(日) 09:49:02 ID:???]
どーゆークエリだそりゃ

500 名前:nobodyさん mailto:sage [2009/03/29(日) 09:54:22 ID:???]
$str = 'test1?test2/test3;test4';
この内容がどういうパターンで変動し得るかがわからん
書かれている正規表現見てみると ? / ; の順に区切り文字があることは固定で決まってる?

501 名前:中山 [2009/03/29(日) 19:51:10 ID:MqxV8vA3]
はい。固定できまってます。

ただし、

test1
などの文字列は半角英数字限定です。



502 名前:nobodyさん mailto:sage [2009/03/31(火) 12:09:46 ID:???]
>>498
data1,data2,data3・・・きめえwww

503 名前:nobodyさん mailto:sage [2009/04/14(火) 19:16:36 ID:???]
以下のような文字列を置換ですべて削除したいのですが
どうかけばいいのでしょうか

onMouseOver="refPopUp(1,event)" onMouseOut="hidePop()"
onMouseOver="refPopUp(23,event)" onMouseOut="hidePop()"
onMouseOver="refPopUp(345,event)" onMouseOut="hidePop()"

3行すべて削除

試した正規表現
onMouseOver="refPopUp(\d+{1,3}.,event)" onMouseOut="hidePop()"

504 名前:nobodyさん mailto:sage [2009/04/14(火) 19:24:30 ID:???]
3}.,の.ってなによ

505 名前:nobodyさん mailto:sage [2009/04/14(火) 19:31:15 ID:???]
>>504
すまんこ

一応自力解決しました。さくらエディタの正規表現オンで動作確認
onMouseOver="refPopUp\(\d{1,3},event\)" onMouseOut="hidePop\(\)"

506 名前:nobodyさん mailto:sage [2009/04/14(火) 20:09:33 ID:???]
下記の2文にあるfontタグを消したいです。
正規表現を用いた1度の置換で消せますか?

<dd><font style="font-size:;color:;"> テスト <br> テスト </font><br><br></dd>
<dd><font style="font-size:;color:;"> テスト2 <br> テスト2 </font><br><br></dd>


考え方として
<dd><font style="font-size:;color:;">がある行のうち</font>を削除し、そのあと<font style="font-size:;color:;">を削除
これで行けそうかと思ったのですが、●●がある行のうち○○を削除、という正規表現がわかりませんでした・・・

507 名前:nobodyさん mailto:sage [2009/04/16(木) 23:48:40 ID:???]
>>506

(.*)<font style="font-size:;color:;">(.*)<\/font>(.*)
$1$2$3
とすればいいんじゃない。
どこの正規表現を使うかによりできないかもしれないけど。

$nはn番目の括弧に該当するから<font style="font-size:;color:;">と</font>が消える。
<font></font>がネスとしているなど複数あったら駄目かもしれないけど。

508 名前:nobodyさん mailto:sage [2009/04/17(金) 04:08:26 ID:???]
>>507
サクラエディタで正常に動作することを確認しました。
ありがとうございます!

509 名前:nobodyさん mailto:sage [2009/04/25(土) 21:30:02 ID:???]
 ヽ('A`)ノ  ○○表現!
  (  ) 
  ノω|


510 名前:nobodyさん mailto:sage [2009/04/29(水) 05:47:07 ID:???]
チカンしまくり

511 名前:nobodyさん mailto:sage [2009/05/12(火) 06:32:22 ID:???]
12?34
12??34

違いが出るときはどんなときか答えなさい




512 名前:nobodyさん mailto:sage [2009/05/18(月) 16:49:08 ID:???]
$txt = aaa(’12165;

のような、固定文字列aaaの後ろに『(’nnnnn;』(nの部分は必ず半角数字で値と文字数は可変。’は全角)となる箇所がうじゃうじゃあり、
この文字列の数字を挟んでいる記号だけを全て削除したいのですが、しっくりくる正規表現が浮かびません
妙案ないでしょうか

php5 or 4

513 名前:nobodyさん mailto:sage [2009/05/18(月) 22:40:33 ID:???]
aaaの後ろにうじゃうじゃって
$txt = aaa(’12165;
$txt = aaa(’5445;
$txt = aba(’13;
$txt = aaa(’99999;
こうなんか?

結果 = preg_replace('/’(\d+);/', '$1', 入力);

結果
$txt = 12165
$txt = 5445
$txt = aba(’13;
$txt = 99999



514 名前:nobodyさん [2009/05/21(木) 08:03:14 ID:bdo2M1uu]
すみません、質問させてください。

曲名のリストを一括置換しようとしています。具体的には"〜 by"が
入る丸括弧だけ四角括弧"[ ]"に置き換えたいのです。


This is me (talk) (Composed by Johan)

This is me (talk) [Composed by Johan]

どのような書式にすればいいかご教示お願いします。


515 名前:nobodyさん mailto:sage [2009/05/21(木) 08:25:36 ID:???]
正規表現と一言に言ってもね、正規表現にもいろいろあってね、どの正規表現かで
書き方も全然違ってくるからね、その質問だけじゃなんとも言えないのね。

初心者用のサイトにいってらっしゃいなのね。

図解でみる正規表現入門
funcchan.blog16.fc2.com/

516 名前:nobodyさん mailto:sage [2009/05/21(木) 08:34:21 ID:???]
$s= "This is me (talk) (Composed by Johan)";
$s=~ s/\(([^\)]*\bby\b[^\)]*)\)/[$1]/gi;

517 名前:nobodyさん mailto:sage [2009/05/21(木) 09:43:06 ID:???]
>>515-516
ありがとうございます。

STEPというタグエディタで100曲ほど一括置換しようと
目論んでます。

教えていただいたサイトとスクリプトを手がかりに
現在悪戦苦闘中です。ちょっと頑張ってみます。

518 名前:nobodyさん mailto:sage [2009/05/23(土) 22:18:11 ID:???]
こういうときにこまるわけか

special days(arranged by hor version.) (Composed by Ellic)



519 名前:nobodyさん mailto:sage [2009/05/27(水) 00:18:24 ID:???]
質問させて下さい。

ABC
…LMNO………
……LMNO……
………LMNO…
XYZ

というような文章があったとします。
「LMNO」の前後(「…」)には文字(日本語や英数字)があります。

Perl5互換の正規表現が使えるテキストエディタや、BREGEXP.DLLが使える置換えソフトを使用し、
「ABC」から「XYZ」までにある「LMNO」を「OOOO」に置換えすることは可能でしょうか?
特定の範囲内の文字だけを置換えする正規表現がわからず、検索文字列と置換え文字列の指定で困っています。
どのようにすれば良いのか教えて頂けると助かります。よろしくお願いします。

520 名前:nobodyさん mailto:sage [2009/05/27(水) 22:50:49 ID:???]
s/(ABC.*)LMNO(.*XYZ)/$1OOOO$2/g
ってことか?

521 名前:519 mailto:sage [2009/05/29(金) 23:05:57 ID:???]
>>520
具体的な指定を教えて頂いてありがとうございました。
早速試したのですが置換えできませんでした。
「Speeeeed」という置換えソフトではBREGEXP.DLLも使えるのですが、それでも置換え結果がゼロのままです。
こちらのスレをもう一度読み返してもっと正規表現を勉強したいと思います。



522 名前:nobodyさん mailto:sage [2009/06/07(日) 21:54:50 ID:???]
s/(?>ABC)(.*)LMNO(.*)(?<=XYZ)/${1}0000$2/
これを何回もかけるとか?
なんか知らんけどgオプションつけても無駄だったんだよなぁ

523 名前:nobodyさん mailto:sage [2009/06/11(木) 09:11:23 ID:???]
>>521
>>520にsパターン修飾子つけて再帰させるしかねーよ

524 名前:nobodyさん mailto:sage [2009/06/12(金) 11:14:20 ID:???]
sed でも使えばー?

525 名前:nobodyさん [2009/06/13(土) 23:07:31 ID:56/XckFT]
Perlの正規表現で質問させて下さい。
yyyy/mm/entry-basename/index.php
↑はどのように記述すればいいのか、お手数ですがご教授願います<(_ _)>

526 名前:nobodyさん mailto:sage [2009/06/14(日) 09:14:31 ID:???]
正規表現で表すには前提条件がないと答えられない
yyyy部分が4桁数字の西暦?
mm部分が2桁数字の月(ゼロサプレス)?

m#^\d{4}/\d\d/entry-basename/index\.php$#

527 名前:525 [2009/06/14(日) 17:21:47 ID:Ycy68Wtw]
>>526さん解凍有り難う御座います。
素人で質問が下手くそで申し訳有りません
↓の場合だと
"/diary/archives/yyyy/mm/entry_basename.php"
"/^\/diary\/archives\/\d{4}\/\d{2}\/(\w+)\.php/"
↑のように置き換えるみたいなのですが、

同様に↓の場合だと
"yyyy/mm/entry-basename/index.php"
どのように置き換えるのかが分からなくて、お手数ですがご教授下さい。

分かりにくくて申し訳ないです。

528 名前:nobodyさん mailto:sage [2009/06/14(日) 21:15:28 ID:???]
ちなみにゼロで桁を埋めるのは「ゼロパディング」ね。


> ↑のように置き換えるみたいなのですが、

「置き換える」って、いわゆる正規表現による置換処理の意味じゃなくて
「検索表現に翻訳する」って意味なのか。凄まじく紛らわしい。

さておき…、
で、どの単語が可変部分なのかがさっぱり分かんないんだよね。
"index.php" は固定なの?

それと、上の置き換え例では "entry_basename" になっているけど
お尋ねの件は "entry-basename" だよね。単なる typo かな?
"\w" を使う上では、検索対象文字列の "_" と "-" との違いは本質的だよ。

要するに、質問するにしては不備が多過ぎます。

529 名前:525 [2009/06/14(日) 23:33:00 ID:Ycy68Wtw]
>>525です

「検索表現に翻訳する」という意味です。失礼しました
そして"index.php"は固定で、"entry-basename"が正解です。

www.magicvox.net/archive/2005/05261744/
ここのページにあるランキングが利用したいのですが、
「ランキング集計したいファイル名にマッチするよう Perl の正規表現
を修正してください。」

ここの意味が分からなくて困っています。他のサイトなどを見てみると、
当方の個別エントリーパスは"/diary/archives/yyyy/mm/entry_basename.php"なわけですので、
"/^\/diary\/archives\/\d{4}\/\d{2}\/(\w+)\.php/"としました。
とあります。

私の場合、エントリーパスは"yyyy/mm/entry-basename/index.php"です。
これを"/^\/diary\/archives\/\d{4}\/\d{2}\/(\w+)\.php/"のように記述
するにはどうすればいいのでしょうか?

長文失礼しました。

530 名前:nobodyさん mailto:sage [2009/06/15(月) 00:03:48 ID:???]
'/\d{4}\/\d{2}\/(\w+)\/index\.php/'

謎すぎるけど PHP の preg 使って entry_basename を $1 に入れるんだと
思い込んでみた

531 名前:nobodyさん mailto:sage [2009/06/15(月) 00:06:02 ID:???]
で、その "entry-basename" ってのはその文字列そのものではなくて
「ここにいろんな文字列が入ります」っつーダミーなんだろうけど、
どういった文字で構成されるの?



532 名前:nobodyさん mailto:sage [2009/07/05(日) 16:07:10 ID:???]
perlでテキストデータ内の日付部分を、
2009/1/1

2009/01/01
に一行で置換したいのですが。
s|/([0-9][^0-9])|/0$1|gm;
だと、2回同じ処理が必要になってしまいます。
いい方法ありますか?

533 名前:nobodyさん mailto:sage [2009/07/05(日) 16:12:40 ID:???]
splitとsprintf

534 名前:nobodyさん mailto:sage [2009/07/05(日) 17:05:36 ID:???]
>>532
後ろの1文字ってマッチする?
マッチするなら
1 while $str =~ s|/([0-9][^0-9])|/0$1|gm;
でいけるんじゃない

535 名前:nobodyさん mailto:sage [2009/07/05(日) 17:40:16 ID:???]
m はなくてもよさそうに見える

536 名前:nobodyさん mailto:sage [2009/07/05(日) 18:26:28 ID:???]
>>534
できました。ありがとうございます!

>>535
おっしゃる通りでした。


537 名前:nobodyさん mailto:sage [2009/07/05(日) 18:27:53 ID:???]
たぶんgもいらないよ

538 名前:nobodyさん mailto:sage [2009/07/08(水) 01:27:46 ID:???]
$str =~ s{/([0-9])(?![0-9])}{/0$1}g;

539 名前:nobodyさん mailto:sage [2009/07/15(水) 09:40:19 ID:???]
秀丸で、CSSの : までの部分を強調表示したいのですが、
どう表現すればいいのでしょうか。
以下の例だと、font-size:の部分です。

h1 {
font-size: 150% !important;
}

540 名前:nobodyさん mailto:sage [2009/07/15(水) 13:56:52 ID:???]
>>539
CSSに数字って出るんだっけ?
[\-a-za-z0-9]+[ \t]*:

541 名前:nobodyさん mailto:sage [2009/07/15(水) 14:47:39 ID:???]
ありがとうございます。
見やすくなりました!
:first-childや:notのセレクタで誤爆していたので

[\-a-za-z0-9]+[ \t]*:(?!\first|last|not)

としました。

また以下のようなものだと誤爆するみたいですが
これはほとんど使わないので目をつむろうと思いますw

BODY[style="width: 100%; height: 100%;"] {
font-size: 150% !important;
}



542 名前:nobodyさん mailto:sage [2009/07/15(水) 15:14:34 ID:???]
良く考えたらもっと一杯あった
[\-a-za-z0-9]+[ \t]*:(?!first|last|not|hover|focas|active|visited|link|lang|after|before)

543 名前:nobodyさん [2009/07/15(水) 23:25:43 ID:2a7dmfqp]
/(^-^;)/w(^o^)vv(-_-;)vv[^-^](^_^;)/

544 名前:nobodyさん mailto:sage [2009/07/22(水) 16:01:40 ID:???]
すみません質問させてください。
正規表現初心者です。
秀丸で、正規表現を使って文字列の置換をしようとしています。

例)
abcd,efag),

これを最初の[,]だけを[',]に置換したいと思っています。

検索文字列: [^)],
置換文字列: ',
とすると、

abc',efag),

のように文字列の後ろの1文字まで消えてしまいます。
文字列が消えないように、最後尾でない[,]だけを置換するにはどのように指定すればいいでしょうか。
教えてください。

545 名前:nobodyさん mailto:sage [2009/07/24(金) 05:32:15 ID:???]
秀丸でサポートされている正規表現の機能がどれだけのものか分からんからなあ。

候補 1(質問者の方針参考)
検索文字列: ([^)]),
置換文字列: $1',

候補 2
検索文字列: ,(?!$)
置換文字列: ',

無理なら一旦「,\n」を「,」を含まない別の適当な文字列に変換して、
全ての「,」を「',」に変換してから元に戻すとか。

546 名前:nobodyさん mailto:sage [2009/08/01(土) 13:06:24 ID:???]
候補 3
検索文字列: |-^)v!!
置換文字列: (^o^)/~~

547 名前:nobodyさん mailto:sage [2009/09/01(火) 17:17:50 ID:???]
PHP5で、$txtに格納された

<a href="javascript:userid('123456');">テキスト</a>
※「123456」と「テキスト」は変化します

といった並びの文字列からタグをぬいて

123456,テキスト,

とカンマ区切りにしたいのですが、何か良い方法はないでしょうか

548 名前:nobodyさん mailto:sage [2009/09/01(火) 17:51:35 ID:???]
自己解決しました
お騒がせして申し訳ありますん

549 名前:nobodyさん mailto:sage [2009/09/03(木) 10:54:41 ID:???]
>>548はだれ?

550 名前:nobodyさん [2009/09/03(木) 12:19:35 ID:54RqrMPZ]
301でサイト移動をする場合に関数に色々な値があるのをそれぞれリダイレクトさせたい場合は
一挙に書くにはどうすればいいでしょうか?


1つ1つ書くと下記のようなのを1つにしたいです。

Redirect 301 /index.php?a=1 "www.sample.jp/index?a=1"
Redirect 301 /index.php?a=2 "www.sample.jp/index?a=2"
Redirect 301 /index.php?a=3 "www.sample.jp/index?a=3"
 ・
 ・
 ・
Redirect 301 /index.php?a=a1 "www.sample.jp/index?a=a1"
Redirect 301 /index.php?a=b2 "www.sample.jp/index?a=b2"
Redirect 301 /index.php?a=c3 "www.sample.jp/index?a=c3"
 ・
 ・
 ・

551 名前:nobodyさん mailto:sage [2009/09/03(木) 12:27:59 ID:???]
>>550
誘導元で礼も無しとか失礼な人だな



552 名前:nobodyさん [2009/09/03(木) 12:47:58 ID:54RqrMPZ]
率直に言って「スレ違い」って程のことか?
と思ったので礼などは書かなかった。

どっちかというとこっちの方が適切とは思うが、
【.htaccessファイル(「分散設定ファイル」)の書き方・使い方などに関するスレです。 】
って説明のスレに書いても別に間違ってないと思う。

553 名前:nobodyさん mailto:sage [2009/09/03(木) 15:52:56 ID:???]
>>550
スレ違い。

【Apache】mod_rewriteについて語るスレ
pc11.2ch.net/test/read.cgi/php/1023791370/


個人的には礼とかどうでもいいと思うけど、
マルチ質問扱いされて厄介なことになる可能性があるので、
「向こうで質問し直します」とかひとこと言っておいた方が無難とは思う。

あと、ドメインの例示に使えるのは "example.jp" ね。






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

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

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