正規表現道場@2ch Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/01/17 11:51:25ID:SH1ygN1Pこのスレは有用そうな正規表現を紹介したり、
どう表現したらいいかわからないときに質問をしたりするためのスレッドです。
質問するときは使用言語や得たい結果をなるべく詳しく書きましょう。
註:& や " を書くときには、& " と描いておきましょうね。
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Regex::Diagram.pm
http://www.cc.rim.or.jp/~midorin/mad-p/RegexDiagram.html
正規表現
http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/PRC2kRegex/
UNIX正規表現入門 目次
http://www01.u-page.so-net.ne.jp/jc4/hiroyuki/rex_index.html
Regular Expression(Riue ちゃんの正規表現講座) - Index
http://www.sixnine.net/regexp/
ほとんどは↓のリンク集にまとまっています。
正規表現最新リンク集2002
http://www2.famille.ne.jp/~akio1998/l_grep.html
過去スレ
正規表現道場@2ch
http://pc.2ch.net/test/read.cgi/php/996105815/
正規表現道場@2ch Part2
http://pc2.2ch.net/test/read.cgi/php/1038146241/
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
0599nobodyさん
2005/08/03(水) 21:25:53ID:M5PNKcG2無理矢理だろうが何だろうが、preg_matchひとつで判定できるような代物ですが何か?
0600nobodyさん
2005/08/03(水) 21:43:01ID:???0601nobodyさん
2005/08/12(金) 05:18:07ID:???フラッシュ[1].jepg
フラッシュ[10].jepg
フラッシュ[100].jepg
フラッシュ[2].jepg
↓
フラッシュ[0001].jepg
フラッシュ[0010].jepg
フラッシュ[0100].jepg
フラッシュ[0002].jepg
こう言う正規表現を誰かお願いします。
0603nobodyさん
2005/08/12(金) 11:04:52ID:???正規表現を教えて下さい。(/usr/local/abcde にはマッチするが、/usr/local/aiueoはマッチしない)
apacheの設定で必要なんですが今一分からない、、、orz
0604nobodyさん
2005/08/12(金) 11:27:06ID:???/usr/local/(?!aiueo)
でいいのか・・・間違ってたら教えて下さい
0605nobodyさん
2005/08/12(金) 15:18:28ID:???宿題じゃないです。
学校にも通ってません。
ソフトを教えてもらうスレでソフトは手に入れたのですが、
正規表現を使わないといけないみたいなんです。
断じて宿題ではありません。
0607nobodyさん
2005/08/12(金) 15:27:19ID:???その先のマッチした文字列を書き換えるところは正規表現の責務じゃない。
* そして、書き換えるところの仕様はソフトによってまちまちなので、
ソフト名を示さないと答えようがない。
* さらに、正規表現もソフトによって異なる点が少なくないので、
ソフト名を示さないと答えようがないケースも多い。
0609nobodyさん
2005/08/12(金) 16:57:29ID:???ベクターで探してみます。
>>607
あっちで教えてもらったソフトは、regrenと言うソフトでした。
ttp://magarchive.halfmoon.jp/nifty/softs/regren.html
>>608
すみません。
0610nobodyさん
2005/08/13(土) 10:23:33ID:???これがマッチしないのはどうしてなんでしょう?お助け下さい。
$ua = "Opera 8.01 [ja]";
preg_match("/Opera 8\.01 \[ja\]/i", $ua)
0611610
2005/08/13(土) 10:36:32ID:???スペースをふたつ吐いてました。 ↑
0612nobodyさん
2005/08/28(日) 20:15:48ID:???https://age.example.net/9j8i7h6g5f-4e3d2c1b0a?ref=true
http://sage.example.net/a1b2c3d4e5-f6g7h8i9j0
https://age.example.net/0j1i2h3g4f-5e6d7c8b9a
上記のようなURLを抽出したいと思い、下記のように試してみましたが
preg_match_all(
"/(https?:\/\/s?age\.example\.net\/[a-z0-9]{10}+-[a-z0-9]{10}+(\?ref=true)?)/i",
$str, $val);
http://sage.example.net/a1b2c3d4e5-f6g7h8i9j0 というような
sageではじまるURLが取得できません
どこがおかしいのでしょうか?ご教授お願いします
0613612
2005/08/28(日) 20:23:16ID:???0614nobodyさん
2005/08/28(日) 20:26:13ID:???これじゃだめなの?
0616nobodyさん
2005/08/28(日) 21:36:14ID:???0617nobodyさん
2005/08/28(日) 21:45:11ID:???0618617
2005/08/28(日) 21:47:13ID:???ほんとに10桁なら、それでOK。
0619nobodyさん
2005/08/28(日) 23:07:24ID:???ありがとうございます
sageではじまるURLの件を除いて、期待通りの動作が確認できました
未熟なので好ましくないコーディングをしている部分がありますが
日々精進していきたいと思います
0620nobodyさん
2005/08/28(日) 23:59:00ID:???異なるというのが原因でした
皆様本当にお騒がせしました・・・
0621nobodyさん
2005/08/31(水) 08:41:15ID:Ym1OpgcO[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]+
と手元の本に書いてありました。
でもこれの意味がよく分かりません。
どなたか解読していただけないでしょうか?
あと上のメールアドレスの正規表現に
!#$%&`+-'^{}
の文字も使えるようにするにはどうすればいいんでしょうか?
よろしくお願いします。。。
0622nobodyさん
2005/08/31(水) 17:56:05ID:???―――――――――――――‐┬┘
.|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ |
| |/ ⊃ ノ | | 手元のクソ本
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ |
0623nobodyさん
2005/09/05(月) 02:14:46ID:???javascriptで 通常のdatを かちゅ〜しゃdatに変換するコンバータを作っています。
http://www.geocities.jp/mirrorhenkan/katu/
ある程度出来たのですが、2点ほどつまづいています
「>1-2」などがマッチした場合は
「<a href="http://hoge.com?bbs=hoge&st=1&to=2">&gt;1-2</a>」
と置換したいので
<script>
test = "これ&gt;1-2です そして&gt;10-20です あと&gt;200-300も";
test = test.replace(/(&gt;)(\d+)(-)(\d+)/g,"<a href=\"http:\/\/hoge.com?bbs=hoge&st=$2&to=$4\">$1$2$3$4</a>");
document.write(test);
</script>
という正規表現をjavascriptで組んでみたら
ちゃんと動作するのですが、
http://www.geocities.jp/mirrorhenkan/katu/
で同じようにやると、
数字が一桁づつの時は動作するのですが
「&gt;99-100」とか「&gt;100-200」等の時には
それぞれ
「〜st=9&to=9">&gt;9</a>9-100」
「〜st=10&to=10">&gt;10</a>0-200」
のようになってしまいます。
もし宜しければ正規表現のおかしい箇所を御指導頂けないでしょうか。
上記ページの該当部分はこちら↓です
line[3] = line[3].replace(/([^>\;]|^)(&gt;|&gt;&gt;|>|>>|≫)(\d+)(-)(\d+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
$3と$5に数字が格納され、URL部分は「sp1+"$3"+sp2+"$5"+sp3」になります。
0624nobodyさん
2005/09/05(月) 02:25:13ID:???クライアントサイドのスクリプト(javascript)を使ってはいますが
正規表現の問題だろうと思い こちらに投稿しました。
あと
最初、間違えて(と書いたら失礼ですが)プログラム板の正規表現スレに
質問したのですが、反応がないので改めてこちらでお願いさせて頂きたく思います。
お詫びという訳でもありませんが、正規表現スレの過去ログです(IEと専用ブラウザ限定ですが)
0625nobodyさん
2005/09/05(月) 02:27:39ID:???http://www.geocities.jp/mirrorhenkan/dat2html-3/
0626nobodyさん
2005/09/05(月) 17:18:48ID:???/[^\d]/で行けると思ったのですが117となってしまいました。
宜しくお願いします。
0627nobodyさん
2005/09/05(月) 17:21:09ID:???何だか楽しそうだから勉強してみたいんだが。
0628nobodyさん
2005/09/05(月) 18:13:16ID:???\((\d+)\)
Perlだと s/[^\d]//g; なんて置換しない限り117にはならない。
>>627
正規表現環境が用意されているエディタやファイラでも大体そのまま使えるよ。
0629nobodyさん
2005/09/05(月) 19:58:08ID:???その「該当部分」がおかしいわけではなくて、一連の replace() うちで、
一番最初のに先にマッチしてしまっているのがまずいんじゃないかな。
ちょっとまだ考え切れてないけど、 replace() を並べる順番を逆にして、
一番複雑なパターンからマッチを試行していくようにするとか、
あるいは、頑張って正規表現を一つにまとめて一度で replace するようにするとか。
>>627
何だか楽しそうだから始めるっていうのは動機として全然アリなんじゃないかと。
0630623
2005/09/06(火) 20:37:04ID:???何でそうなったのか、後でじっくり考えてみようと思います。
>>629さん、ありがとうございます。
もう一つ質問してもいいでしょうか。
「&gt;1」や「&gt;50」等のように
レス番に全角数字を使っている場合、
URL該当部分だけ半角数字にする正規表現は何か考えられるでしょうか。
例えば
<script>
test = "これ&gt;1-2です";
test = test.replace(/(&gt;)(\d+)(-)(\d+)/g,"<a href=\"http:\/\/hoge.com?bbs=hoge&st=$2&to=$4\">$1$2$3$4</a>");
document.write(test);
</script>
の場合、
「これ<a href="http://hoge.com?bbs=hoge&st=1&to=2">&gt;1-2</a>です」
と表示されますが、
URL表示部分の数字を半角にしたいのです。
javascript寄りの質問になってしまっていたら、申し訳ありません。
もし宜しかったらお願い致します。
0631nobodyさん
2005/09/06(火) 23:15:05ID:???\dが全角数字にもマッチするってどのブラウザ?
WinIE6では再現できなかった。[0-9]ならできたけど。
とりあえず全角数字部分をescapeして
"0"→"%uFF10"→"0"
"9"→"%uFF19"→"9"
みたいに末尾1字取れば一応半角に戻る
"630".replace(/0/g,'0').replace(/1/g,'1').replace(/2/g,'2').replace(/3/g,'3').......
でもいいけど。他にもっといい方法あるかも。
url = "http://hoge.com?bbs=hoge&st=1&to=2";
url = url.replace(/([0-9])/g, function(){return escape(arguments[1]).substr(5)}));
// 参考:JavaScript質問スレ40-237
0632nobodyさん
2005/09/07(水) 00:29:44ID:CuTS4a6v(foo)(bar)(hoge)
のような文字列のときに、それぞれの括弧とその中身にマッチさせるにはどうすればいいでしょうか。
どうしても一番外側の括弧一つだけしかマッチできません。
0636nobodyさん
2005/09/07(水) 05:59:43ID:L++YBOi9とりあえず次スレのテンプレには
/\Qhttp://pc8.2ch.net/php/index.html\E/
m|usr/local/bin/perl|
が必要だと感じた。
0637623
2005/09/07(水) 19:44:49ID:???すみません、ごちゃごちゃしてて書き換え忘れてました。[0-9]です。
escapeを教えて頂いてありがとうございます。
ただ、URL部分だけを半角数字にするにはどういう方法があるのだろう・・。
例えば
<script>
url = "1番目のレスは<a href=\"http://hoge.com?bbs=hoge&key=0123456789&st=551&to=552\">&gt;551-552</a>です";
url = url.replace(/([0-9])/g, function(){return escape(arguments[1]).substr(5)});
document.write(url);
</script>
とやると、URL以外の数字も半角になってしまいます・・。
0638623
2005/09/07(水) 19:51:37ID:???アンカーが飛び飛びについてしまいます
<script>
line = "&gt;2 &gt;3 &gt;4 &gt;5 &gt;6 &gt;7-8 &gt;90-100 >100-200";
sp1 = "<a href=\"http:\/\/server.2ch.net/test/+read.cgi?bbs=board&key=123456789&st=";
sp2 = "&to=";
sp3 = "&nofirst=true\" target=\"_blank\">";
//半角レス番
line = line.replace(/([^\;]|^)(&gt;|&gt;&gt;|>|>>|≫)(\d+)(-)(\d+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
line = line.replace(/([^\;]|^)(&gt;|&gt;&gt;|>|>>|≫)(\d+)([^<-]|$)/g,"$1"+sp1+"$3"+sp2+"$3"+sp3+"$2$3<\/a>$4");
//全角レス番
line = line.replace(/([^>\;]|^)(&gt;|&gt;&gt;|>|>>|≫)([0-9]+)(-|\−|\ー)([0-9]+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
line = line.replace(/([^>\;]|^)(&gt;|&gt;&gt;|>|>>|≫)([0-9]+)([^<-]|$)/g,"$1"+sp1+"$3"+sp2+"$3"+sp3+"$2$3<\/a>$4");
document.write(line);
</script>
実行させると
レスアンカーが一つ飛びについてない状態です
何故だ・・・
0640nobodyさん
2005/09/08(木) 15:58:55ID:???line = ">2 >3 >4 >5 >6 >7-8 >90-100 >100-200";
sp1 = "<a href=\"http:\/\/server.2ch.net/test/+read.cgi?bbs=board&key=123456789&st=";
sp2 = "&to=";
sp3 = "&nofirst=true\" target=\"_blank\">";
line = line.replace(/(>|>>|>|>>|≫)([0-90-9]+)(-([0-90-9]+))?/g, ""+sp1+"$2"+sp2+"$4"+sp3+"$1$2$3<\/a>");
document.write(line);
</script>
これでいいのかな?
まだハイパーリンクに仕込む番号は半角化しないとならないな。
0641nobodyさん
2005/09/08(木) 16:35:13ID:???(>>|>|>>|>|≫) みたいにして長い方のパターンを先にしなきゃダメじゃない?
0643nobodyさん
2005/09/08(木) 17:07:45ID:???0645623
2005/09/08(木) 20:11:30ID:???半角全角の数字をまとめて出来るとは知りませんでした・・
ただ
「&gt;1」のようにレス番が単独のものと
「&gt;1-2」のようにレス番がまたがるものがあるので
それを一度に置換させる方法があるでしょうか。。
「&gt;1」の場合 →「〜&st=1&to=1〜」
「&gt;1-2」の場合→「〜&st=1&to=2〜」
と、「to=××」の部分に入れる部分が異なるので
今のところは二つに分けているのですが・・・。
全角数字と半角数字をまとめてみました↓が、やはりアンカー飛び飛びだ・・・
<script>
line = "&gt;2 &gt;3 &gt;4 &gt;5 &gt;6 &gt;7-8 &gt;90-100 >100-200";
sp1 = "<a href=\"http:\/\/server.2ch.net/test/+read.cgi?bbs=board&key=123456789&st=";
sp2 = "&to=";
sp3 = "&nofirst=true\" target=\"_blank\">";
line = line.replace(/([^\;]|^)(&gt;|&gt;&gt;|>|>>|≫)([0-90-9]+)(-|−|ー)([0-90-9]+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");
line = line.replace(/([^\;]|^)(&gt;|&gt;&gt;|>|>>|≫)([0-90-9]+)([^<-]|$)/g,"$1"+sp1+"$3"+sp2+"$3"+sp3+"$2$3<\/a>$4");
document.write(line);
</script>
>>640さんのように、正規表現を一つにまとめないと駄目みたいですね。。
0646nobodyさん
2005/09/08(木) 20:27:23ID:???後半があれば必ず長い方に一致させるから
心配しなくていい。
前後の([^\;]|^)や([^<-]|$)が、lineに格納されたスペースを食っちゃってる
ようだけど。
0647646
2005/09/08(木) 20:32:18ID:???間違えた。
0649nobodyさん
2005/09/08(木) 20:41:11ID:???document.write(line);
としてみたらやっと気付いたけど、今のままでも
2回目の置換では<a href="...">2</a>とかタグの終了の>
置換してるのが原因だな・・・
0650nobodyさん
2005/09/08(木) 20:44:19ID:???line = ">2 >3 >4 >5 >6 >7-8 >90-100 >100-200";
sp1 = "<a href=\"http:\/\/server.2ch.net/test/+read.cgi?bbs=board&key=123456789&st=";
sp2 = "&to=";
sp3 = "&nofirst=true\" target=\"_blank\">";
line = line.replace(/(>|>>|>|>>|≫)([0-90-9]+)(-([0-90-9]+))?/g,
sp1 + "$2" + sp2
+ ("$4" ? "$2" : "$4")
+ sp3 + "$1$2$3<\/a>");
document.write(line);
</script>
ではこれでどう?
0651650
2005/09/08(木) 20:47:45ID:???0652623
2005/09/09(金) 19:15:40ID:???「>132」等の全角半角混じりでもあてはまってしまうので
([0-9]+|[0-9]+)
でした。。
>>646
>>648
2chの生datをかちゅ〜しゃdatに変換しようとしているのですが
生datを見てみると、レスアンカーは
例えば「&gt;&gt;1」だと
「<a href="../test/read.cgi/server/0123456789/1" target="_blank">&gt;&gt;1</a>」
となっているので、それらを除外させる為に前後につけています。
その正規表現も正しいのかどうか・・。
あと すみません、>>640さんや>>650さんのものだと
例えば「>90-100」だと
「〜&st=90&to=90&nofirst=true〜」となってしまうのです
望む結果は「〜&st=90&to=100&〜」なのです・・
何だか駄々をこねてるみたいで申し訳ないです・・。
0653650
2005/09/09(金) 20:44:02ID:???今度は大丈夫だと思います。
<script>
line = "&gt;2 &gt;3 &gt;4 &gt;5 &gt;6 &gt;7-8 &gt;90-100 >100-200";
sp1 = "<a href=\"http://server.2ch.net/test/+read.cgi?bbs=board&key=123456789&st=";
sp2 = "&to=";
sp3 = "&nofirst=true\" target=\"_blank\">";
function toascii(s) {
dest = "";
for (i = 0; i < s.length; i++) {
ch = s.charCodeAt(i);
0654650
2005/09/09(金) 20:45:42ID:???dest += String.fromCharCode(ch - 0xff10 + 0x30);
else
dest += s.charAt(i);
}
return dest;
}
function replacefunc(m) {
if (m.match(/(&gt;|&gt;&gt;|>|>>|≫)([0-90-9]+)([-−ー]([0-90-9]+))/)) {
return m.replace(/(&gt;|&gt;&gt;|>|>>|≫)([0-90-9]+)([-−ー]([0-90-9]+))/,
sp1 + "$2" + sp2 + "$4" + sp3 + "$1$2$3<\/a>"
).replace(/(st|to)=[0-90-9]+/g, toascii);
} else {
return m.replace(/(&gt;|&gt;&gt;|>|>>|≫)([0-90-9]+)/,
sp1 + "$2" + sp2 + "$2" + sp3 + "$1$2<\/a>"
).replace(/(st|to)=[0-90-9]+/g, toascii);
}
}
line = line.replace(/(&gt;|&gt;&gt;|>|>>|≫)([0-9]+|[0-9]+)([-−ー][0-90-9]+)?/g,
replacefunc);
document.write(line);
</script>
0655651
2005/09/10(土) 11:01:20ID:maA6hdJkPHPで全角カタカナとハイフンと全角スペースだけを通したいんだけどこれ間違えてる?
0656623
2005/09/10(土) 19:09:02ID:???すみません、後でじっくりやってみます・・・。
正規表現の内部(?)でも javascript使えるんですね。
0657名無しさん@そうだ選挙に行こう
2005/09/10(土) 19:19:19ID:???preg_match("/^(\x83[\x40-\x96]|\x81\x40|\x81\\x5B)+$/", $nnn )
にしたら動いた。
\x5bは'['に当たるからエスケープしないとダメ
0658名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:40:59ID:???0659名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:35:06ID:???0660nobodyさん
2005/09/14(水) 09:43:56ID:krHmg2tG近くの本屋になかった。
0661nobodyさん
2005/09/14(水) 09:47:46ID:???立ち読みする必要ないなら通販で買えば。
0662nobodyさん
2005/09/15(木) 00:14:36ID:???そこそこでかいとこか、技術書みたいな本が置いてあるようなとこくらい。
オライリーが置いてあるとこでも、全部置いてあるわけじゃないから
>>661の言うように中身確認する必要がなければ通販で買っちゃうのが手っ取り早いかも。
紀伊国屋とかならネットで在庫確認出来るから、利用するのもアリ。
0663nobodyさん
2005/09/15(木) 00:17:41ID:???0664nobodyさん
2005/09/15(木) 00:45:18ID:???0665nobodyさん
2005/09/15(木) 04:31:19ID:???0666nobodyさん
2005/09/15(木) 13:19:06ID:???0667nobodyさん
2005/09/15(木) 13:30:10ID:???0668nobodyさん
2005/09/15(木) 21:28:10ID:???$temp[7] =~ /(*.)時(*.)分/;
と使うと、以下のようなメッセージが出ます。
Quantifier follows nothing in regex; marked by <--HERE in m/(* <--HERE .)時(*.)分/; at sub2.pl line 161.
初めてでるエラーメッセージなので憶測ですが、HEREで示されたメタ文字[*]が、掛け算の演算子と間違えて認識されているのでしょうか?
文字コードはShift_JIS、開業コードはCR+LFです。ぜひアドバイスお願いします。。。
0669nobodyさん
2005/09/15(木) 21:44:26ID:???0670nobodyさん
2005/09/15(木) 21:53:15ID:???ぐおおおおお、本当ですね…
こんな簡単なことでスレ汚してすいません… 回線切ってこのプログラム仕上げてから首吊ってきます…
0671nobodyさん
2005/09/15(木) 21:59:21ID:???0672nobodyさん
2005/09/16(金) 17:59:17ID:???ありがとう!
熊谷で売ってなくて、大宮のそごうでも売ってなくて、結局新宿の紀伊国屋まで行ってきたよ。
半端じゃない数だな…。
0673nobodyさん
2005/09/16(金) 18:01:35ID:???0675nobodyさん
2005/09/16(金) 19:00:48ID:???ところで、最近正規表現の入門的な書籍がたくさん出てきてるみたいだけど、
プログラミングや正規表現の初心者向けに一冊すすめるとしたらコレ、
っていうのは何かある?
0676nobodyさん
2005/09/17(土) 15:02:40ID:???0677nobodyさん
2005/09/18(日) 21:21:10ID:???3以上の数字が、特定の文字列(Xとする)の後に来た場合にマッチさせ置換します。
数字は全角でも半角でもマッチとし、マッチした部分を\\1後で使います。
数字は二桁までを範囲とします。
$pattern = "/X([0-9]?[3-9]|[0-9]?[3-9])/";
preg_replace ("$pattern", "X<span class=\"level\">$1</span>", $aaaa);
これだとうまくマッチしないのですが、何が原因でしょうか。
0678nobodyさん
2005/09/18(日) 23:33:12ID:???0679nobodyさん
2005/09/19(月) 01:36:01ID:???0680nobodyさん
2005/09/19(月) 16:33:59ID:???数量詞はregexで何にも続きません; --<によってマークされて、m/(*<--HERE。)時(*)分/のHERE; sub2.plに、161を裏打ちしてください。
0681nobodyさん
2005/09/19(月) 16:54:25ID:???"/^fuckyou$/"
0682nobodyさん
2005/09/19(月) 17:38:25ID:???0683nobodyさん
2005/09/19(月) 17:50:19ID:???表現のなかに ' やら " が出て来た場合面倒杉。
0684nobodyさん
2005/09/19(月) 18:50:05ID:XLGKZohV含まれたものをヒットさせたいのだが、うまくいかない。
$line =~ /『.*?か.*?』/g;
だと、例2のような間に』と『あるやつも引っかかってしまうのだが・・・・・・・わかる人お願い。
例1 $line = "あいうえお『かき』くけこさし『すせ』そ"; →○
例2 $line = "あい『うえお』かき『くけ』こさしすせそ"; →×
0685nobodyさん
2005/09/19(月) 18:54:01ID:???0688nobodyさん
2005/09/19(月) 21:40:28ID:???こういうのよく見るけど、
$pattern を用意して、preg_replace() かける時に
わざわざ再度ダブルクォートで囲うのって
個人的にはちょっと…怖いかも。
副作用がありそうで。
0689nobodyさん
2005/09/20(火) 23:16:09ID:???ただし、"で囲まれた文字列はスペースで分割しない
ということをやりたいんだけど、これって正規表現で
うまくできる?
例:
dir "c:\abc def" ghi jkl
dir
c:\abc def
ghi
jkl
こんな感じに分割したいです。
0690nobodyさん
2005/09/20(火) 23:38:25ID:pDhdrwjA0691nobodyさん
2005/09/21(水) 20:40:37ID:???VK_C, 57634, NOINVERT, CONTROL, VIRTKEY
VK_BACK, 57643, NOINVERT, ALT, VIRTKEY
VK_F6, 57681, NOINVERT, SHIFT, VIRTKEY
VK_Z, 57643, NOINVERT, CONTROL, VIRTKEY
これを1 or 2回の置換で下のように編集できるでしょうか?
CONTROL C, 57634
ALT BACK, 57643
SHIFT F6, 57681
CONTROL Z,57643
秀丸つかってるんですが、タグつき正規表現に関する知識足りず、
ノーマル置換とExcelでまかなっている現状です。
0692nobodyさん
2005/09/21(水) 22:26:39ID:???VK_([^,]+),\s+(\d+),\s+[^,]+,\s+([^,]+).*$ → \3 \1, \2
で駄目なの?
0694nobodyさん
2005/09/22(木) 08:50:22ID:???ありがとうございます。ただ少し手直し必要だったので、一応のせておきます。
検索 VK_\f[A-Z0-9]+, [0-9]{5}\f, [A-Z]+, \f[A-Z]+\f,.+
置換 \3 \1
でも意味はあまり理解してません。
0695nobodyさん
2005/09/23(金) 23:27:20ID:???Vn →Vn/2
例
@1 →@0
V127 →V63 V63→V31 V31→V15
というように、@とVに続く数値をそれぞれ「-1」、「1/2」になるように処理したいのですが、
どのような正規表現を記述すれば良いでしょうか?
0696695
2005/09/23(金) 23:28:24ID:???@n →@n+1
例
@0 →@1
の誤りでした。
0697nobodyさん
2005/09/24(土) 01:32:55ID:???$1eval($2/2)
■ このスレッドは過去ログ倉庫に格納されています