Regular Expression(正規表現) Part12
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/12/17(火) 14:19:52.00質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part11
http://toro.2ch.net/test/read.cgi/tech/1362913813/
天ぷら等2以降
0002デフォルトの名無しさん
2013/12/17(火) 14:21:56.13●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
0003デフォルトの名無しさん
2013/12/17(火) 14:25:36.11正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
正規表現パズル
http://www.geocities.jp/oraclesqlpuzzle/regex/
詳説 正規表現
http://www.oreilly.co.jp/books/9784873113593/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
JScript 正規表現の概説
http://msdn.microsoft.com/ja-jp/library/28hw3sce%28v=VS.80%29.aspx
.NET Framework 正規表現言語要素
http://msdn.microsoft.com/ja-jp/library/az24scfc%28v=vs.80%29.aspx
【 初心者 】 正規表現 【 入門 】
http://funcchan.blog16.fc2.com/
0004デフォルトの名無しさん
2013/12/17(火) 14:28:55.56[UNIX板] 正規表現
http://pc12.2ch.net/test/read.cgi/unix/1039165754/
[WebProg] 正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
◆前スレ
[1] http://pc8.2ch.net/test/read.cgi/tech/1062152374/
[2] http://pc8.2ch.net/test/read.cgi/tech/1131028296/
[3] http://pc11.2ch.net/test/read.cgi/tech/1156413899/
[4] http://pc11.2ch.net/test/read.cgi/tech/1186030400/
[5] http://pc12.2ch.net/test/read.cgi/tech/1212498448/
[6] http://pc12.2ch.net/test/read.cgi/tech/1241537764/
[7] http://hibari.2ch.net/test/read.cgi/tech/1268979408/
[8] http://hibari.2ch.net/test/read.cgi/tech/1301067486/
[9] http://toro.2ch.net/test/read.cgi/tech/1323566370/
[10] http://toro.2ch.net/test/read.cgi/tech/1340383120/
[11] http://toro.2ch.net/test/read.cgi/tech/1362913813/
0005デフォルトの名無しさん
2013/12/17(火) 15:28:30.720006デフォルトの名無しさん
2013/12/17(火) 15:42:08.770007デフォルトの名無しさん
2013/12/17(火) 16:58:38.41前回不備のあったリンクが直ってるな
0008デフォルトの名無しさん
2013/12/17(火) 20:55:54.43著者不明や日付不明、その他タイトルがあったりなかったりするけども。
Perlで最終的にデータベースに流し込みたい。
0009デフォルトの名無しさん
2013/12/17(火) 21:09:33.900010デフォルトの名無しさん
2013/12/17(火) 21:33:24.690011デフォルトの名無しさん
2013/12/17(火) 21:37:33.080012デフォルトの名無しさん
2013/12/17(火) 21:44:01.17論文読んだことのない奴には
分からない話か。
0013デフォルトの名無しさん
2013/12/17(火) 22:24:05.27切り分けと判定は別にしたほうがいいような
0014デフォルトの名無しさん
2013/12/17(火) 22:41:19.96Perl
●検索か置換か?
検索
●説明
ミドルネームを含む名前も、ミドルネームを含まない名前も分解して抽出したい
また、名前の区切りはスペースやドットなど色々なものに対応したい
●対象データ
Edward Snowden
Edward.Joseph.Snowden
エドワード・スノーデン
エドワード=ジョセフ=スノーデン
●希望する結果
(値を入れているわけではなく、$1〜$3に入っていて欲しいものです)
$1 = "Edward" $2 = "" $3 = "Snowden"
$1 = "Edward" $2 = "Joseph" $3 = "Snowden"
$1 = "エドワード" $2 = "" $3 = "スノーデン"
$1 = "エドワード" $2 = "ジョセフ" $3 = "スノーデン"
0015デフォルトの名無しさん
2013/12/17(火) 23:59:19.63Part11スレへどうぞ
0016デフォルトの名無しさん
2013/12/18(水) 00:11:20.15どうしても$1〜$3に入ってなきゃダメかね?
my $fname;
my $mname;
my $lname;
if ( $buf =~/([a-zA-Z]*)[\s\.・==]([a-zA-Z]*)[\s\.・==]*([a-zA-Z]*)/ ){
$fname = $1;
if (length($3)==0){
$lname = $2;
}else{
$mname = $2;
$lname = $3;
}
}
0017デフォルトの名無しさん
2013/12/18(水) 00:13:22.40先ずは正規化して、どれかのルールに置き換えた方がいいと思う。
0018デフォルトの名無しさん
2013/12/18(水) 00:22:55.22日本語は?
0019デフォルトの名無しさん
2013/12/18(水) 00:45:13.94$buf=shift; #引数として名前を受け取る
if ($buf=~/(.+)(\s|\.|=|・)(.+)(\s|\.|=|・)(.+)/){
return ($1,$3,$5);
}elsif ($buf=~/(.+)(\s|\.|=|・)(.+)/){
return ($1,"",$3);
}
}
こっちのほうがいい。
0020デフォルトの名無しさん
2013/12/18(水) 00:58:54.760021デフォルトの名無しさん
2013/12/18(水) 01:01:51.510022デフォルトの名無しさん
2013/12/18(水) 01:12:12.270023デフォルトの名無しさん
2013/12/18(水) 01:42:16.31sub namechk{
$buf = shift;
$buf =~s/(\s|\.|=|=|・)/"."/meg;
if ( $buf =~/(.+)\.(.+)\.(.+)/ ){
return ( $1 , $2 , $3 );
}elsif ( $buf =~/(.+)\.(.+)/ ){
return ( $1 , "" , $2 );
}
}
0024デフォルトの名無しさん
2013/12/18(水) 15:04:44.65とかそういう話じゃなくて?
0025デフォルトの名無しさん
2013/12/18(水) 22:15:22.03リンク踏んだら確認画面が出て、確認画面のリンクをクリックしたら別ページに飛ぶ、
というのは正規表現でできるのでしょうか?
PHPです
0026デフォルトの名無しさん
2013/12/18(水) 22:35:15.56エスパーするとHTMLの勉強から始めるべき。
002725
2013/12/18(水) 22:54:58.53いえ、HTMLのリンクタグがあるじゃないですか
投稿のときはHTMLのリンクタグを書いてなくてもURLを投稿するだけでリンクタグが適用されるじゃないですか
0028デフォルトの名無しさん
2013/12/18(水) 23:15:24.490029デフォルトの名無しさん
2013/12/18(水) 23:36:58.180030デフォルトの名無しさん
2013/12/19(木) 00:32:05.32リンクじゃなくてアンカーだと思うが。
それなら、置換対象となる文字列と、置換後の期待するアンカー要素を提示すれば答えられるのでは。
ということが>>2に書いてある。
0031デフォルトの名無しさん
2013/12/19(木) 18:18:46.43$txt=~s/(http:[a-z])/"<a href='$1'>$1</a>"/;
0032デフォルトの名無しさん
2013/12/19(木) 18:31:22.37スキームはhttpだけじゃないし、その後もa-zだけじゃないだろう。
http://www.w3.org/Addressing/URL/5_BNF.html
0033デフォルトの名無しさん
2013/12/19(木) 19:00:10.10ttp
https
ttps
ftp
辺りかな
0034デフォルトの名無しさん
2013/12/19(木) 19:02:44.69mailtoもあるし、geoとかtelとか独自っぽいものもあったりなかったり。
0035デフォルトの名無しさん
2013/12/19(木) 19:44:40.190036デフォルトの名無しさん
2013/12/19(木) 19:49:05.13文章に含まれてるURLっぽい部分が
URLかメールアドレスか判別するのって
正規表現でできるかね
0037デフォルトの名無しさん
2013/12/19(木) 19:53:57.46メールの署名とかに書くぞ。
単にURLと見做す補完機能が仕様にないだけ。それは正規表現の問題ではない。
0038デフォルトの名無しさん
2013/12/19(木) 20:03:41.120039デフォルトの名無しさん
2013/12/19(木) 20:25:27.40結果がおかしいぞ
http:/
までしかリンクにならない
0040デフォルトの名無しさん
2013/12/19(木) 20:31:37.69$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s]+)/"<a href='$1'>$1</a>"/eg;
0041デフォルトの名無しさん
2013/12/19(木) 20:35:28.310042デフォルトの名無しさん
2013/12/19(木) 20:41:06.60Perlの仕様だと思われ。
0043デフォルトの名無しさん
2013/12/19(木) 20:46:23.51それだけじゃないからw
「+」付けてもこうなるwww
$line = "You have to visit http://www.seiki.com/ and http://www.hyougen.com/ !!";
$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s]+)/"<a href='$1'>$1<\/a>"/eg;
print $line;
You have to visit <a href='http://www.seiki.com/ and http'>http://www.seiki.com/ and http</a>://www.hyougen.com/ !!
0044デフォルトの名無しさん
2013/12/19(木) 21:04:59.70$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?]+)/"<a href='$1'>$1</a>"/eg;
0045デフォルトの名無しさん
2013/12/19(木) 21:57:08.85こういう正規表現って毎回書くの?
それとも関数作って関数の中にこれ一行だけ書くの?
0046デフォルトの名無しさん
2013/12/19(木) 22:04:16.92どちらがわかりやすいかで考えれば
答えは自ずと出てくるだろ。
0047デフォルトの名無しさん
2013/12/19(木) 22:13:26.500048デフォルトの名無しさん
2013/12/19(木) 22:18:35.54「こういう」が何を指してるか知らんけど、今はサブルーチンにしてしまうのが一般的。
サブルーチン作ると重くなるとか言ってたマシンスペックの低い時代ならマシンスペックと相談だろうね。
今はマシンスペックがかなり高いから、余程のことがない限り可読性重視。
あと、保守性の問題もある。
例えば>>44の正規表現からftpを外そうと思ったときに、あちこちに同じ正規表現があったら全部変更していく必要がある。
サブルーチンにしておけば1箇所変更すればよい。
0049デフォルトの名無しさん
2013/12/19(木) 22:50:21.72調べたら鬼車じゃん
いいんじゃね
0050デフォルトの名無しさん
2013/12/19(木) 23:25:32.19Perl 5.10.1
●検索か置換か?
置換
●説明
CSSにおいて、任意のクラスの任意の項目を変更したい
●対象データ
・・・ここまで他のクラス・・・
.test{
background-color: #ffffff;
color: #000000;
padding: 0px;
margin: 0px;
}
・・・ここから他のクラス・・・
●希望する結果
例えば、testクラスのpaddingを4pxにしたい
・・・ここまで他のクラス・・・
.test{
background-color: #ffffff;
color: #000000;
padding: 4px;
margin: 0px;
}
・・・ここから他のクラス・・・
(クラス内部でインデントのために全角スペースを使っていますが、実際の運用ではタブ1つ分です)
(クラスによって項目の数が違います)
0051デフォルトの名無しさん
2013/12/20(金) 03:44:23.37本スレ誘導
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/
0052デフォルトの名無しさん
2013/12/20(金) 03:47:57.610053デフォルトの名無しさん
2013/12/20(金) 03:52:58.58チョンの本スレ宣伝はここにも来たか
0054デフォルトの名無しさん
2013/12/20(金) 04:49:30.72part11 1362913813.dat 2013/03/10(日) 20:10:13.34〜2013/12/19(木) 20:34:23.12
偽スレ 1363769640.dat 2013/03/20(水) 17:54:00.46〜
part11が立ってから10日遅れ
part10が埋まってからでも8日遅れ
もう重複とかいうレベルですらなく、ただの荒らしだな
何が嫌でこんな宣伝してるのか……part10終盤を再現したいとか?
http://toro.2ch.net/test/read.cgi/tech/1363769640/102
102 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/17(火) 18:44:06.65
重複重複うるさいから確認してみたら、
正規の次スレが立って1週間以上経ってからこの偽物スレが立ってる。
どう考えても確信犯。
このスレを立てたのは恐らく本物のキチガイ。
0055デフォルトの名無しさん
2013/12/20(金) 07:02:29.39スレタイを勝手に変えてしまったから、どちらとも言えないけどね。
なんとかスタンダードとやらで、こちらが正統でいいんじゃないの。
0056デフォルトの名無しさん
2013/12/20(金) 16:49:34.58例えばC言語でも、
コンパイラの独自拡張を除いたいわゆる「C言語」ってあるじゃん。
そういう意味でいわゆる「正規表現」ってあるの?
0057デフォルトの名無しさん
2013/12/20(金) 18:55:07.78POSIXとかPCREのこと?
CもANSI C89とかいろいろあるでしょう。
0058デフォルトの名無しさん
2013/12/20(金) 19:07:50.28Posix正規表現だけでもSRE、BRE、EREと3種あるくらいで所謂とか本家とかは
聞いたことないですね。
C++11でEcmascriptの正規表現もサポートとしていることや、利用者数、使い
やすさ等を鑑みてJSの正規表現を中心に考えてみてはどうでしょうか。
自分の製品に正規表現エンジンを組み込む場合は。
0059デフォルトの名無しさん
2013/12/20(金) 21:05:18.16短くていいな。
俺も昨日ちょっと考えてたけど、もうちょい長くなった。
0061デフォルトの名無しさん
2013/12/21(土) 02:56:45.92part10終盤の様相からしたら仕方ない。
スレタイ変えた程度であの手の馬鹿が引っ込むってのも不自然だが、
自演だとしても質問スレ系みたいに変なルール追加されたわけでもなさげだし。
0062デフォルトの名無しさん
2013/12/21(土) 03:04:06.35何のパーサかにもよるだろうけど、RSSのパーサとか
0063デフォルトの名無しさん
2013/12/21(土) 03:50:16.65見てみりゃいいじゃん。
0064デフォルトの名無しさん
2013/12/21(土) 03:53:20.96正規表現だけでは限界があるので
単語の判断ぐらいに使ってる。
0065デフォルトの名無しさん
2013/12/21(土) 04:00:03.52RSSのパーサってか、XMLのパーサだな。
0066デフォルトの名無しさん
2013/12/21(土) 04:39:34.92正しい定義で言うといわゆる正規表現は正規表現と呼ぶべきではないとか言う事になりそうですらある
逆にいわゆる正規表現とは全く異なるBNFとかの方が元の定義で言う正規表現らしかったりすらする程
そしてXMLはExtended BNFで定義されてるから、Extended BNFを正規表現と呼ぶならXMLパーサ=正規表現処理エンジンという事に
真面目に実装の話に戻ると、何らかの正規表現言語で言語を定義してそれをパーサジェネレータに食わせてパーサ作ったりするはず
ここで使う正規表現はいわゆる正規表現で無い事も多いが、正規表現を使っているといえば使っている
出力されたパーサには正規表現が含まれ・・・・・・ないんじゃないかなぁ・・・・・・
0067デフォルトの名無しさん
2013/12/21(土) 11:16:20.610068デフォルトの名無しさん
2013/12/22(日) 00:37:07.32C言語のソースコードに以下の条件に従ってスペースを入れたいのですが正規表現でどう書けば良いでしょうか?
1. 関数のカッコの中では、カッコの前後、及びカンマの前後に半角スペースを1つ入れたい
2. 但し、関数の中で文字列が引数になっている場合、その文字列に含まれるカッコやカンマの前後には何も入れない
3. 但し、ソースコード全体では、既に希望通りの半角スペースの入っている部分と、まだ入っていない部分がある
鬼車5.9.2です
よろしくお願いします
0069デフォルトの名無しさん
2013/12/22(日) 01:05:58.47正規表現は文字列の集合を表すもの。
BNFは文脈自由文法を表すもの。
従って、正規表現で表現できるものはBNFでも表現可能だが、逆は真でない。
例えば、XMLの文法を表現するのにBNFが使えるが、正規表現では無理。
0070デフォルトの名無しさん
2013/12/22(日) 01:12:21.330071デフォルトの名無しさん
2013/12/22(日) 01:19:10.65可能なすべてのパターンをORでつなげばいいから。
0072デフォルトの名無しさん
2013/12/22(日) 01:21:57.64あー、右正規文法か左正規文法を表現するのが正規表現で、
文脈自由文法は右正規文法と左正規文法を同時に含みうるのか。
ただどっちにしてもそこで言う正規表現ってこのスレで扱う正規表現じゃ無くてその元ネタの方だよね。
0073デフォルトの名無しさん
2013/12/22(日) 01:25:47.380074デフォルトの名無しさん
2013/12/22(日) 01:26:53.770075デフォルトの名無しさん
2013/12/22(日) 01:40:04.42DOMで扱う場合は使わない
0076デフォルトの名無しさん
2013/12/22(日) 01:48:18.97JavaScriptの正規表現エンジンはブラウザ独自。
だからIEで挙動が違ったり、Chromeが正規表現のエンジンを高速化したりということがある。
何年か前からブラウザは動作速度合戦になって、各ブラウザ共色々テコ入れしてる。
JavaScriptとその中の正規表現エンジンもかなり動作速度に影響するから当然テコ入れ対象。
0077デフォルトの名無しさん
2013/12/22(日) 01:51:07.170078デフォルトの名無しさん
2013/12/22(日) 02:54:20.70規格に基づいてエンジン作るわけだから
0079デフォルトの名無しさん
2013/12/22(日) 02:57:41.750080デフォルトの名無しさん
2013/12/22(日) 03:06:17.950081デフォルトの名無しさん
2013/12/22(日) 03:20:59.29要件による
0082デフォルトの名無しさん
2013/12/22(日) 03:22:31.900083デフォルトの名無しさん
2013/12/22(日) 05:25:17.33ECMA?
0084デフォルトの名無しさん
2013/12/22(日) 10:09:35.44全てがそうとは限りませんが、俺が見た範囲ではそうでした。
0085デフォルトの名無しさん
2013/12/22(日) 12:32:08.28HTMLのIMGタグから、ファイル名と、
もし幅か高さが指定されていればそれも抽出したいです
<img src="test.jpg">
<img src="test2.gif" width="200">
<img src="test3.png" width="200" height="160">
0086デフォルトの名無しさん
2013/12/22(日) 12:47:55.74widthはパーセント指定できるの?構文解析の仕様は?
0087デフォルトの名無しさん
2013/12/22(日) 12:56:13.97HTMLパーサでパースしろ
そしてここには二度と来るな
0088デフォルトの名無しさん
2013/12/22(日) 13:00:48.21鬼車知らんけど、
([\(,])([.\s]*?)([,\)])
かな。
0089デフォルトの名無しさん
2013/12/22(日) 13:25:48.130090デフォルトの名無しさん
2013/12/22(日) 13:34:14.520091デフォルトの名無しさん
2013/12/22(日) 13:44:18.71数字だったら\dで表せるけどそういう簡単なのないですか?
0092デフォルトの名無しさん
2013/12/22(日) 14:55:17.890093デフォルトの名無しさん
2013/12/22(日) 15:38:51.590094デフォルトの名無しさん
2013/12/22(日) 19:33:09.96四日市市とかで切り分けに失敗する自信がある
0095デフォルトの名無しさん
2013/12/22(日) 20:53:52.69仮に[^:ascii:]{1,6}市?市としても、市名の次に市が付く町名が来たら厄介だな。
POSIX使ってみた([^:ascii:])
知らない人は「鬼車 正規表現」でググればわかる。
WSHとかでは使えないみたいだけど。
0096デフォルトの名無しさん
2013/12/22(日) 21:53:21.530097デフォルトの名無しさん
2013/12/22(日) 22:37:59.73四日市には市場町という地名があるようだ…
0098デフォルトの名無しさん
2013/12/22(日) 23:06:47.370099デフォルトの名無しさん
2013/12/22(日) 23:10:22.380100デフォルトの名無しさん
2013/12/22(日) 23:37:00.86なりたちからして自然だと思うが
0101デフォルトの名無しさん
2013/12/23(月) 01:00:16.43もう既存の市町村名から正規表現生成するスクリプト作ってしまったほうが良い気が
0102デフォルトの名無しさん
2013/12/23(月) 07:58:36.38既存の市町村名全部持って、普通にマッチングした方がいいだろ...
0103デフォルトの名無しさん
2013/12/23(月) 14:36:10.76四日市市
野々市市
廿日市市
0104デフォルトの名無しさん
2013/12/23(月) 14:39:25.15http://www.city.higashiomi.shiga.jp/0000000610.html
平成17年2月11日には、
1市4町(八日市市・永源寺町・五個荘町・愛東町・湖東町)が合併し「東近江市」が誕生しました。
0105デフォルトの名無しさん
2013/12/23(月) 14:42:30.110106デフォルトの名無しさん
2013/12/23(月) 15:44:28.03http://www.addressmatch.jp/rule.html
0107デフォルトの名無しさん
2013/12/23(月) 19:50:41.112番目の条件がきつい
0108デフォルトの名無しさん
2013/12/23(月) 23:14:24.79それからやったらどうよ
それでソースコードのコンマを処理し終わったらもとに戻す
[[comma]]とか
0109デフォルトの名無しさん
2013/12/23(月) 23:53:19.750110デフォルトの名無しさん
2013/12/24(火) 04:03:10.05大差なくね?
ああまあ市町村名DBをそのまま食わせられるからメンテ楽ってのはあるか…
しかし一度regexp.exec(str)すれば即結果が得られるってのもそれはそれで楽
>>104
古い住所入れる奴が居るから・・・
>>108-109
メタ文字決めて先にメタ文字のエスケープしろよ、定番だろ。
0111デフォルトの名無しさん
2013/12/24(火) 15:37:26.19クリスマス関連の文字列でマッチしてクリスマス関連の文字列を含むウェブページをフィルタリングしたいのですが
どういう正規表現で書けばいいでしょうか
0112デフォルトの名無しさん
2013/12/24(火) 17:47:45.62s/クリスマス関連/あぼーん/g
0113デフォルトの名無しさん
2013/12/24(火) 19:25:31.280114デフォルトの名無しさん
2013/12/25(水) 12:13:30.690115デフォルトの名無しさん
2013/12/25(水) 13:17:37.81痴漢
$1200.00
\24980000
3桁ごとに「,」を入れたい
$1,200.00
\24,980,000
0116デフォルトの名無しさん
2013/12/25(水) 18:08:29.450117デフォルトの名無しさん
2013/12/25(水) 19:07:10.42http://regex.alf.nu/
0118デフォルトの名無しさん
2013/12/25(水) 22:14:50.89プログラミングの役に立たない無意味な正規表現を作る能力で何の能力を測るのかが不明。
0119デフォルトの名無しさん
2013/12/26(木) 11:54:11.09何か測るとか 考えすぎっつーか余裕なさすぎ
0120デフォルトの名無しさん
2013/12/26(木) 12:16:44.97ちゃんとマッチする物作って、点数が低いとかよくわからん。
マッチさせないギリギリを狙うゴルフなんだろか。
0121デフォルトの名無しさん
2013/12/26(木) 13:58:48.86それじゃダメだろ
0122デフォルトの名無しさん
2013/12/26(木) 15:39:20.510123デフォルトの名無しさん
2013/12/26(木) 15:48:59.72パターンの文字数が少ない方が点数が上がる
ドット使いまくり
0124デフォルトの名無しさん
2013/12/26(木) 16:07:49.11Anchors (204)
Ranges (202)
Backrefs (197)
Abba (183)
A man, a plan (165)
素数の逆転がうまくいかねー
0125デフォルトの名無しさん
2013/12/26(木) 18:48:08.56これ解析して正規表現を生成するプログラムは書くことできる?
0126デフォルトの名無しさん
2013/12/26(木) 18:48:35.02当たり前だろ
0127デフォルトの名無しさん
2013/12/26(木) 20:13:22.44なるほど、fooとか入れてくのね。
ありが�d。
0128デフォルトの名無しさん
2013/12/27(金) 06:30:50.86Prime(0) を生成するプログラムお願いします。
0129デフォルトの名無しさん
2013/12/27(金) 08:52:28.550130デフォルトの名無しさん
2013/12/27(金) 18:44:21.67^(xx+?)\1+$
の逆だから素直に
^(?!(xx+)\1+$)
0131デフォルトの名無しさん
2013/12/27(金) 23:49:58.74抽出した文字列にダブりがあります。
例:
AAA
BBB
AAA
CCC
BBB
CCC
これを
AAA
BBB
CCC
のように抽出し直すにはどうすればいいでしょうか?
0132デフォルトの名無しさん
2013/12/28(土) 00:43:17.44cat text.txt | sort | uniq
0133デフォルトの名無しさん
2013/12/28(土) 06:02:29.57重複を削れといっているようだが、整列し直せとは言っていない。
0134デフォルトの名無しさん
2013/12/28(土) 09:24:51.01Unixの勉強しましょうね
0135デフォルトの名無しさん
2013/12/28(土) 11:41:43.23正規表現スレだぞ
根本的に勘違いしてる
死んで良いよ
0136デフォルトの名無しさん
2013/12/28(土) 12:25:00.00?
0137デフォルトの名無しさん
2013/12/28(土) 12:31:59.03cat text.txt | sort | uniq
uniqの部分をしっかり見ろよ
0138137 ようわからん
2013/12/28(土) 12:38:28.75BBB BBB BBB BBB
AAA
CCC CCC CCC CCC
BBB BBB
CCC CCC CCC
この方法だとuniqしたく無い場合に良い。
0139デフォルトの名無しさん
2013/12/28(土) 12:43:27.01するとsortが使えない、ゆえにuniqが使えないとなって破綻する。
UNIXのコマンドって微妙に使えないのが多くて、微妙に違うだけの同じ目的の
コマンドが多くて困る。
解決案として要件の変更が必ず提示されるのも困る。
それでUNIXは廃れたんじゃないかな?
0140デフォルトの名無しさん
2013/12/28(土) 12:49:05.400141デフォルトの名無しさん
2013/12/28(土) 12:55:41.87要件に入ってない範囲なら整列するもしないも自由なのが常識。
0142デフォルトの名無しさん
2013/12/28(土) 12:58:58.73Windows。
0143デフォルトの名無しさん
2013/12/28(土) 13:39:07.55http://perldoc.jp/docs/perl/5.14.1/perlre.pod#47l
0144デフォルトの名無しさん
2013/12/28(土) 13:46:20.25それは使いこなせてないんだろ。
Unixのコマンドは90%の解決を目指してる。その方が使いやすい。
自分の要件に合わせた、それにしか使えないコマンドが欲しいならプログラムすればいい。
0145デフォルトの名無しさん
2013/12/28(土) 14:11:57.43使わなくて済むからだ。
〜ジャーゴンニュースより抜粋〜
0146デフォルトの名無しさん
2013/12/28(土) 14:19:31.38/d
この修飾子は、パターンマッチングの際にプラットフォーム固有のロケール(ASCIIなど)を使用するように指示する。
ただし、Unicodeを使うべき理由がある場合はこの設定はそちらが優先される。
この修飾子が具体的にパターンマッチングにどのような変化をもたらすかを以下のサンプルで示した。
/l
この修飾子は、パターンマッチングの際に現在のロケール設定を使用するように指示する。
このロケール設定はコンパイル時のロケールと同じであるとは限らず、
setlocale()を用いて任意のロケール設定を用いることができる。
/u
この修飾子は、パターンマッチングの際にUnicodeのルールを使用するように指示する。
0147デフォルトの名無しさん
2013/12/28(土) 15:07:09.11すでに抽出した行と同じ行は除外するというのが最も自然な
アルゴリズムなので、それを期待している可能性が高いから
整列は避けるというのが一番自然。
0148143
2013/12/28(土) 15:17:11.45おお、ありがとうございます。マジで助かりました。
おかげ様でperl 5.14.1の正規表現ルールを全部覚えられました、感謝〜。
0149デフォルトの名無しさん
2013/12/28(土) 15:18:54.48どういたしまして。
0150デフォルトの名無しさん
2013/12/28(土) 15:40:23.440151デフォルトの名無しさん
2013/12/28(土) 18:44:49.260152デフォルトの名無しさん
2013/12/29(日) 01:12:47.990153デフォルトの名無しさん
2013/12/29(日) 04:51:41.49そこはまぁCygwinとかMinGW+MSYSとかgnuwin32とかの各コマンド入れればいいって話になるんじゃね。
まぁどのみち正規表現じゃないからVBScriptの相談できる場所で聞けよて終わりなんだけど。
0154デフォルトの名無しさん
2013/12/29(日) 09:03:40.37「VBScriptで作ったデータの処理」であって「VBScript で処理しろ」とは書いてないけどな。
まあ、一回きりなら Excel でもいいかもしれないし、VBScript で完結させたいなら Dictionary 使うのが楽。
0155デフォルトの名無しさん
2013/12/29(日) 09:15:59.40「正規表現ではできません」でいいのでは。
0156デフォルトの名無しさん
2013/12/29(日) 13:27:09.27VBSでやるとしたら正規表現の出番は ^.*$ くらいしか無いんじゃ・・これすら必要無いか・・
0157デフォルトの名無しさん
2013/12/29(日) 13:34:16.381、最終行が1行目になるように順番を逆さまにする
2、s/^(.*)$(?=[\s\S]*^\1$)[\r\n]*//g;
3、1をする
これで順番通りの結果になる。
0158デフォルトの名無しさん
2014/01/03(金) 02:42:43.46公式から正規表現で解析できる?
0159デフォルトの名無しさん
2014/01/03(金) 03:57:47.910160デフォルトの名無しさん
2014/01/03(金) 19:20:28.19環境はPerlです
0161デフォルトの名無しさん
2014/01/03(金) 20:03:17.54センテンスごとに特定の単語を表す正規表現がマッチするか調べる。
0162デフォルトの名無しさん
2014/01/03(金) 22:39:20.14センテンスの前と後の改行を条件にする
0163デフォルトの名無しさん
2014/01/04(土) 12:47:08.01センテンスの開始と終了を正規表現で表し、「特定の単語」をその間に挟む
0164デフォルトの名無しさん
2014/01/04(土) 13:10:19.31$text = '英文';
$keyword = '特定の単語';
$regex = qr/(?:\G|[.?!;])\s*((?=[^.?!;]*\b$keyword\b)[^.?!;]+(?:[.?!;]|\z))/;
while ($text =~ /$regex/g) {
print "$1\n";
}
() や "" などの中に文章が再帰的に書かれているようなものは考慮していない.
0165デフォルトの名無しさん
2014/01/05(日) 13:52:40.260166デフォルトの名無しさん
2014/01/07(火) 08:56:16.73Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm#WithoutXYZ
0167デフォルトの名無しさん
2014/01/07(火) 19:47:23.30こういう計算方法って初めて見た。なんて名前の学問?なんだろう。
0168デフォルトの名無しさん
2014/01/07(火) 21:12:17.73ttp://www.ccn.yamanashi.ac.jp/~ysuzuki/automaton/automaton2012_08.pdf
0169デフォルトの名無しさん
2014/01/07(火) 22:41:51.17パス文字列として正しいかどうかのチェックをしたくて次のようなコードを使ってみました。
Write-Host "マウントする仮想ディスクイメージのパスを入力"
Write-Host "例: X:\VHD Images\example01.vhdx"
$ImagePath = Read-Host "場所"
$ImagePath = $ImagePath -Replace "`"",""
Write-Host "入力したパス: "$ImagePath
If($ImagePath -inotmatch "[a-z]`:`\[^/:*?`"<>|]+`.vhdx?") {
【TAB】 Write-Host "正しい形式のパスではありません。"
} Else {
【TAB】 Write-Host "OK"
}
しかし、いくら正しいパスを入力しても「正しい形式のパスではありません。」が返されてしまいます。
コード中の正規表現部分はご覧のとおり [a-z]`:`\[^/:*?`"<>|]+`.vhdx? で、
一応ウェブ上の「PHP正規表現チェッカー」とJane用の「ReplaceStr Tool」では問題ありませんでした。
エスケープ文字が\ではなく`という点にも気を付けてチェックしました。
ここまでやってみましたが、問題点の洗い出しができすに困っています。
「OK」を返されるにはどうしたらいいのでしょうか?
尚、Test-Pathコマンドレットの利用はここでは扱わないものしてお願いします。
0170デフォルトの名無しさん
2014/01/08(水) 03:15:48.510171デフォルトの名無しさん
2014/01/08(水) 04:27:05.50あれ?エスケープ文字は`だってあっちこっちに書いてあるからその通りにしてたけど、それで動くんですね。
どうもありがとうございます。
0172デフォルトの名無しさん
2014/01/08(水) 16:38:03.89"例: X:\VHD Images\example01.vhdx.damy"
あと 「ReplaceStr Tool」 は対象テキストの改行が無視される仕様なので
改行を含むテキストにマッチさせたいときはご注意を。
0173デフォルトの名無しさん
2014/01/09(木) 06:00:28.69ありがとうございます。
自分用に使う分には誤爆の心配は一応無いのでいいのですが、きっちりやる時はそうですね。
おっしゃるとおり、ReplaceStr Toolは1行だけのテストにしか使えませんね。
まだ試してはないけど、ベクターにも何やらありますね。
0174デフォルトの名無しさん
2014/01/11(土) 20:59:48.360175デフォルトの名無しさん
2014/01/11(土) 23:17:13.530176デフォルトの名無しさん
2014/01/12(日) 00:02:13.49変数宣言に関する言語の文法とあなたのコーディングルールを全て列挙できたら考えないこともない。
あとプリプロセッサとコメントは禁止で。
どぞっ。
0177デフォルトの名無しさん
2014/01/12(日) 04:23:26.19char *tai_pei64, honkon32[32];
とりあえずこれだけで考えると
int、charで始まる行で、a〜z、A〜Z、0〜9、_、*を含む部分か?
関数を除外するには"("を含んだ行なら無視するか。
0178デフォルトの名無しさん
2014/01/12(日) 20:29:15.960179デフォルトの名無しさん
2014/01/13(月) 00:11:59.89俺にはムリだな
0180デフォルトの名無しさん
2014/01/16(木) 13:18:43.710181デフォルトの名無しさん
2014/01/16(木) 19:04:22.390182デフォルトの名無しさん
2014/01/16(木) 20:22:08.300183デフォルトの名無しさん
2014/01/16(木) 22:02:42.42>>2
0184デフォルトの名無しさん
2014/01/16(木) 22:12:38.67basedir使えよ。環境知らんが。
0185デフォルトの名無しさん
2014/01/16(木) 23:37:49.090186デフォルトの名無しさん
2014/01/17(金) 05:59:24.78・再起を使った正規表現 (??{code})はNG
これ作って面白い正規表現のベスト1、2なんだけど使える人が少なすぎる。
もっと普及させようよ。というかまず使えるようになってくれよ。
0187デフォルトの名無しさん
2014/01/17(金) 09:27:36.46再*帰* は、すべての正規表現環境で使えないし。
0188デフォルトの名無しさん
2014/01/17(金) 14:12:23.470189デフォルトの名無しさん
2014/01/17(金) 23:28:17.63ruby
●検索か置換か?
置換
●説明
行中の改行を削除したい
以下でやると改行だけでなく改行の前の一文字も何故か消えてうまくいきません
対象データの場合は「元」が消えてしまいます
ruby -e 'puts open("input.txt").read.gsub(/[^。¥n]¥n/,"")' > output.txt
●対象データ
こんにちはお元
気ですか。
私は元気です。
●希望する結果
こんにちはお元気ですか。
私は元気です。
0190デフォルトの名無しさん
2014/01/18(土) 03:14:41.62[^。\n]の意味考えてから投稿しろカス
0191デフォルトの名無しさん
2014/01/18(土) 08:28:14.05「行中の改行を削除したい」は矛盾した表現。
「文字列中の改行を削除したい」か「行末の改行を削除してひとつの文字列にしたい」
だと思う。
0192デフォルトの名無しさん
2014/01/18(土) 09:04:51.25(?<!。)\n
0193189
2014/01/18(土) 10:19:24.32勘違いしていました
192様のやり方でできました
みなさまありがとうございました
0194デフォルトの名無しさん
2014/01/18(土) 10:42:29.07これはガチ池沼に見える
0195デフォルトの名無しさん
2014/01/18(土) 11:17:22.590196デフォルトの名無しさん
2014/01/18(土) 11:25:24.11誰も困らないしね
0197デフォルトの名無しさん
2014/01/18(土) 11:38:53.05次からは↓でどうぞ
正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
0198デフォルトの名無しさん
2014/01/18(土) 13:10:02.660199デフォルトの名無しさん
2014/01/18(土) 14:10:17.090200デフォルトの名無しさん
2014/01/18(土) 15:52:02.570201デフォルトの名無しさん
2014/01/18(土) 16:56:55.68難癖っつかツンデレだろ
190「[^。\n]がどういう意味を調べれがそうなった理由がわかるよ」
194「[^。\n]の意味を誤解している。もう一回ちゃんと理解してみよう」
実際[]の意味を適当な解説から丸写しするくらいしか説明する事ない。
0202デフォルトの名無しさん
2014/01/18(土) 18:10:45.52低レベルのダンジョンをいつまでもウロウロしてもしょうがなかろう。
0203デフォルトの名無しさん
2014/01/18(土) 18:18:08.51生真面目で賢いオートマトンたんに萌える
http://toro.2ch.net/test/read.cgi/shar/1232872347/
0204デフォルトの名無しさん
2014/01/18(土) 18:30:16.630205デフォルトの名無しさん
2014/01/18(土) 22:24:36.17http://news.livedoor.com/article/detail/8239104/
0206デフォルトの名無しさん
2014/01/18(土) 22:35:15.56【クイズ】狼とヤギと野菜を川の向こうに無事に運ぶ方法を求めよ
0207デフォルトの名無しさん
2014/01/19(日) 02:21:57.460208デフォルトの名無しさん
2014/01/19(日) 04:51:14.32perlの正規表現は誰も使わないようなメタ文字類まで使いこなせるがperlそのものはまるで知らない。
0209デフォルトの名無しさん
2014/01/19(日) 05:02:05.90なら机上でやってろよ。
0210デフォルトの名無しさん
2014/01/19(日) 05:09:31.17じゃあおまえが上で俺が下な。
0211デフォルトの名無しさん
2014/01/19(日) 07:33:31.670212デフォルトの名無しさん
2014/01/19(日) 11:10:20.350213デフォルトの名無しさん
2014/01/19(日) 13:47:41.62厨学生はお気楽でいいな
まあその餌では誰も釣れんが
0214デフォルトの名無しさん
2014/01/20(月) 00:35:22.22・Ardenの規則
ネットには正しい解説が見当たらなかった2つ。どうやらこの辺がネット独学(笑)の限界らしい。
大学レベルの内容すら出てこないとはな、ネットのレベル低すぎる・・。
0215デフォルトの名無しさん
2014/01/20(月) 00:36:44.710216デフォルトの名無しさん
2014/01/20(月) 00:51:42.180217デフォルトの名無しさん
2014/01/20(月) 11:45:30.88ネットのレベルが低いだと?
井の中のカワズちゃんは、島国の中心で哀でも叫んでろ
0218デフォルトの名無しさん
2014/01/20(月) 12:02:22.87大人にうるさいと言われたでござるの巻
0219デフォルトの名無しさん
2014/01/20(月) 18:22:31.69英文で何か書いてるサイトがあることは随分前から知ってるよ。
ただ英文なんて読んでらんねーからノーカウント。そんなん読むくらいなら普通に本買うわ。
0220デフォルトの名無しさん
2014/01/20(月) 18:27:36.050221デフォルトの名無しさん
2014/01/20(月) 18:32:10.45正規表現でぐぐると行列が出てくるサイトがあるんだがさっぱりだ。
0222デフォルトの名無しさん
2014/01/20(月) 18:33:45.98http://toro.2ch.net/test/read.cgi/army/1384257046/
0223デフォルトの名無しさん
2014/01/20(月) 19:05:48.980224デフォルトの名無しさん
2014/01/20(月) 21:39:08.940225デフォルトの名無しさん
2014/01/21(火) 03:07:08.52http://www.kt.rim.or.jp/~kbk/zakkicho/index.html
日記更新した。どうやら気付いてもらえなかったようだ。
0226デフォルトの名無しさん
2014/01/21(火) 04:03:29.000227デフォルトの名無しさん
2014/01/21(火) 04:19:40.24http://www.din.or.jp/~ohzaki/regex.htm#Without
> (?:fooba|foob|foo|fo|f)
これは f でまとめて書くかどうか悩んだだろうなぁw
まとめないほうが分かりやすいのでこの書き方に賛成ですw
0228デフォルトの名無しさん
2014/01/21(火) 04:22:06.48正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
0229デフォルトの名無しさん
2014/01/21(火) 05:02:16.61XXXXXfoo → XXXXXfo.
うーん。。 この説明はちょっとというか、かなり分かりにくい。最後のピリオドがメタ文字に見えたし・・。
読む人の中でこの説明を理解出来る人はほとんどいないと思う。
0230デフォルトの名無しさん
2014/01/21(火) 15:33:02.180231デフォルトの名無しさん
2014/01/21(火) 19:06:33.85即答出来る人はほぼいないんじゃないかな。頭の体操としては面白いんだけどね。
0232デフォルトの名無しさん
2014/01/21(火) 22:25:26.020233デフォルトの名無しさん
2014/01/22(水) 03:26:52.310234デフォルトの名無しさん
2014/01/22(水) 22:42:26.46空白だけの行とか、虫食い状態になってしまったんですが、
どのようにすればいいでしょうか?
自分は、pythonですが、pattern = r"^\s*\t*(\r)?\n$"
としてまずは空白行を取り除こうとしました
しかし、失敗しました
アドバイスいただけたらと思います
0235デフォルトの名無しさん
2014/01/22(水) 22:47:01.47\n にマッチさせるなら $ を使う必要はないのでは。
$ は \n の直前にマッチする。
つまり $\n が本来の書き方。
0236デフォルトの名無しさん
2014/01/22(水) 22:50:17.110237デフォルトの名無しさん
2014/01/22(水) 22:54:54.34\s*\t* は \s* と同じ意味。\s はタブにもマッチする。
>>236
それだとファイル先頭の行が空行だったら消せないね。
0238デフォルトの名無しさん
2014/01/22(水) 23:37:30.99アドバイスを参考に、^[\s*(\r)?\n]+(\r)?\nとかを\nに変えてみました
しかし、やはりダメでした
検索しても、いい情報が出てきませんでした
思っていたより難しいですね...
0239デフォルトの名無しさん
2014/01/23(木) 00:56:46.11まずは a を b に置換出来るかどうかから始めたほうがいい。
0240デフォルトの名無しさん
2014/01/23(木) 09:57:52.300241デフォルトの名無しさん
2014/01/23(木) 13:22:58.47ざまぁwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
誘導に対して荒らしだのNGだのほざいてたゴミ乙wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ああいう奴らが社会の底辺で足引っ張ってるんだろwwwwwwwwwwwwwww
どうせプライドのかけらもない恥知らずだからこのスレになに食わぬ顔で書いてるんだろうなwwwwww
本当に思考回路歪んでるし生きてる価値がないんだから氏ねばいいのにwwwwwwwwwwwwwwwwww
偽スレの正統性を主張してたみたいに現実社会でも意味不明な狂った主張をしてるんだろwwwwwwwwwしかも自覚なしwwwwwwwwwwwwwww
迷惑だから早く芯でねwwwwwwwwwwwwwwwwwwwwwwww
0242デフォルトの名無しさん
2014/01/23(木) 14:11:58.390243デフォルトの名無しさん
2014/01/23(木) 14:57:09.39どんだけピュアハートなんだよ。
0244デフォルトの名無しさん
2014/01/23(木) 17:56:37.00削除されることは最初から分かってただろうに。
削除されるべくして削除されただけ。
0245デフォルトの名無しさん
2014/01/23(木) 20:49:54.400246デフォルトの名無しさん
2014/01/23(木) 23:24:17.63このスレは糞質問の雨嵐を受ける傘スレ。
0247デフォルトの名無しさん
2014/01/24(金) 00:17:56.24我々ってキチガイのお前一人だけだよ。
0248デフォルトの名無しさん
2014/01/24(金) 01:01:07.270249デフォルトの名無しさん
2014/01/24(金) 01:12:33.81分かってないな
わざわざこっちに来てまで荒らすってことは
あっちを荒らしてくれってことだよ
0250デフォルトの名無しさん
2014/01/26(日) 03:11:54.27(a\*|b\*|c\*|a|b|c)
*付きのものを前に書かないといけません。(順番大事)
0251デフォルトの名無しさん
2014/01/26(日) 13:48:39.54むこうのスレの90です。
勉強になります。ありがとうございます。
おそらく私の質問に関するレスだと判断しましたので
レスをさせていただきました。
0252デフォルトの名無しさん
2014/01/26(日) 14:43:40.930253デフォルトの名無しさん
2014/01/26(日) 20:18:56.54から
12UI
を取り出す正規表現を教えてけろ。\( \)を使おうとしたのだが、
文字列の中にもともと入っている()があるのでうまく行かん。
0254デフォルトの名無しさん
2014/01/26(日) 21:20:59.04どういう正規表現だとどういうのがうまく行かないのか書け
0255デフォルトの名無しさん
2014/01/26(日) 21:26:52.82エスケープしろ、またはするな。
どちらかは環境による。
0256デフォルトの名無しさん
2014/01/27(月) 14:36:23.650257デフォルトの名無しさん
2014/01/27(月) 15:02:22.99>>256
教えていただいた方法で出来たのですが、
例に挙げた12UIだけではなく、以下のように数字が一般の整数の場合、
DirectCast\(([0-9].UI), UInt32Value\)
のようにしてみたのですが、マッチしません。
DirectCast(14805UI, UInt32Value), _
DirectCast(8010UI, UInt32Value) _
DirectCast(1UI, UInt32Value), _
DirectCast(152511UI, UInt32Value)
どうしたらよいでしょうか?
環境はサクラエディタの置換コマンドです。
0258デフォルトの名無しさん
2014/01/27(月) 15:27:17.46.の意味を調べればよい。
0259デフォルトの名無しさん
2014/01/27(月) 15:34:39.28できました。数年ぶりに正規表現使ったので間違えていました。
ありがとうございました。
0260デフォルトの名無しさん
2014/01/27(月) 16:44:44.210261デフォルトの名無しさん
2014/01/27(月) 20:51:42.26手を動かすだけでできるようなやつ
0262デフォルトの名無しさん
2014/01/28(火) 03:17:05.070263デフォルトの名無しさん
2014/01/28(火) 05:01:27.39Javascript
●検索か置換か?
置換
●説明
'1'を含まないABCからDEFまでを削除したいです
●対象データ
ABC
1
DEF
ABC
2
DEF
ABC
3
DEF
●希望する結果
ABC
1
DEF
0264デフォルトの名無しさん
2014/01/28(火) 05:05:40.490265デフォルトの名無しさん
2014/01/28(火) 10:10:43.60「'1'を含まないABCからDEF」というと対象データでは2パターン考えられる.
A) 2の前後,と,3の前後
B) 2の前のABCから3の後のDEFまで
おそらくAだとして,
str = str.replace(/ABC[^1]*?DEF/g, '');
0266デフォルトの名無しさん
2014/01/28(火) 12:01:12.29否定の中にもDEFを書くのがミソ。
0267デフォルトの名無しさん
2014/01/28(火) 12:39:43.06最短一致を使えば否定の中にDEFを書く必要はなくなる.
ABC(?:(?!123).)*?DEF
0268デフォルトの名無しさん
2014/01/28(火) 16:46:19.880269デフォルトの名無しさん
2014/01/28(火) 17:25:51.830270デフォルトの名無しさん
2014/01/28(火) 22:03:43.460271デフォルトの名無しさん
2014/01/29(水) 03:20:24.59正規表現単体で使う分にはまったく問題ないが正規表現の一部として正規表現の中に
放り込むと問題が生じる可能性が出てくる。ある程度正規表現に慣れた人なら無意識に回避
出来るだろうが初心者の場合それが出来ないからね。
0272デフォルトの名無しさん
2014/01/29(水) 03:24:16.13分岐があると遅くなるがこれを最小限にする方法もある(詳説 正規表現参照)
上級者にもおすすめしたい書き方なのだ。
0273デフォルトの名無しさん
2014/01/29(水) 03:58:32.190274デフォルトの名無しさん
2014/02/01(土) 16:47:50.64PHP
●検索か置換か?
検索
● 文字コードを取得したい。
例)
text/html;charset=ISO-8859-1 > ISO-8859-1
text/html;charset=utf-8 > utf-8
preg_match('/text\/html;charset=(.+?)/i' , $str);
これだと先頭の1文字しか取れません。
自分なりに頑張ってここまでしたのでアドバイスください。
0275デフォルトの名無しさん
2014/02/01(土) 16:52:12.730276デフォルトの名無しさん
2014/02/01(土) 16:58:34.76即答どうもです、助かりました。
0277デフォルトの名無しさん
2014/02/01(土) 17:43:47.020278デフォルトの名無しさん
2014/02/01(土) 20:50:26.760279デフォルトの名無しさん
2014/02/02(日) 19:25:37.080280デフォルトの名無しさん
2014/02/02(日) 19:31:36.160281デフォルトの名無しさん
2014/02/02(日) 19:35:26.390282デフォルトの名無しさん
2014/02/10(月) 17:23:05.15すんごい亀だけど、-が真ん中にあるからエラーになったんじゃないの?
0283デフォルトの名無しさん
2014/02/10(月) 18:52:12.860284デフォルトの名無しさん
2014/02/10(月) 23:38:57.90Notepad++.exe 6.53(Scintillaライブラリ,正規表現は複数行に対応してます)
●検索か置換か?
置換
●説明
Movable Type形式にエクスポートしたブログのコメントだけを削除したいです。
"COMMENT:"で始めって"-----"で終わるのを""で置換したい
●対象データ
AUTHOR: foo
-----
BODY:
あ
-----
COMMENT:
AUTHOR: bar
か
-----
--------
AUTHOR: foo
-----
BODY:
さ
-----
--------
0285デフォルトの名無しさん
2014/02/10(月) 23:39:29.02AUTHOR: foo
-----
BODY:
あ
-----
--------
AUTHOR: foo
-----
BODY:
さ
-----
--------
単純にCOMMENT:.*-----で検索すると最初の"COMMENT:"から"ファイル末尾の"--------"の最後の"-----"部分までが選択されてしまいます。
"COMMENT:"から最初に現れる"-----"までがヒットするようにしたいです。
0286デフォルトの名無しさん
2014/02/10(月) 23:45:59.68すっごい久しぶりにスレひらいたから、ごめんね><
0287デフォルトの名無しさん
2014/02/10(月) 23:47:17.98対応してるかどうかしらないけど、 .* → .*? にするといいよ
0288デフォルトの名無しさん
2014/02/11(火) 00:00:34.65ありがとー
できた
0289デフォルトの名無しさん
2014/02/15(土) 00:47:50.42コレを正規表現で文字コードかどうかのvalidateを行うにはどのようにしたらいいですか?
[a-zA-Z0-9-]+では、-----とかも通ってしまいます
0290デフォルトの名無しさん
2014/02/15(土) 02:03:36.42[a-zA-Z0-9]*-[a-zA-Z0-9]*
※真ん中のハイフンのエスケープは環境に合わせて
0291デフォルトの名無しさん
2014/02/15(土) 02:05:31.570292デフォルトの名無しさん
2014/02/15(土) 08:18:47.090293デフォルトの名無しさん
2014/02/15(土) 08:35:56.020294デフォルトの名無しさん
2014/02/15(土) 10:22:10.36_の扱いに悩むな
0295デフォルトの名無しさん
2014/02/15(土) 11:50:20.25文字コードの名前は「英数字があり、一個だけ"-"が含まれています」ってのがそもそも間違い.
http://www.iana.org/assignments/character-sets/character-sets.xhtml
また,正式には「Shift_JIS」だが,モジュールによっては「SJIS」とか「Shift-JIS」とかも受け付けたりするので,それらも認めるかどうかは前提次第.
正確にvalidateしたいんなら文字コードの名前をひたすら列挙していくしかない.
列挙せずに規則性(条件)を探して正規表現にするのは面白いかもしれない.
例えば,
・「-」や「_」では終わらない
・「:」の後ろには数字が2桁か4桁続いて終わる
とか.
0296デフォルトの名無しさん
2014/02/15(土) 13:27:17.080297デフォルトの名無しさん
2014/02/15(土) 15:34:21.63[a-zA-Z0-9]+(-|_|:)?[a-zA-Z0-9]+して、
例えばlen(str) <= 30
くらいにしとけばセキュリティ的にも大丈夫なんじゃないの?
あ、正規表現の部分が全然ダメか
0298デフォルトの名無しさん
2014/02/19(水) 19:13:00.30名前付きグループを置換する正規表現はどう書けばおk?
グループ内にカッコが存在するパターンも考えると俺の頭じゃ思いつかなかった。
0299デフォルトの名無しさん
2014/02/19(水) 20:31:04.07ごめん、ちょっとよく聞こえなかった。
環境も聞き取れなかった。
0300デフォルトの名無しさん
2014/02/19(水) 21:16:56.09input="aa痴漢aaa"
0301298
2014/02/19(水) 21:50:47.96パターン:\(\?<id>.*?\)
結果:aa置換た )aa
対象:(aa(?<id>でーた )aa)
パターン:\(\?<id>.*\)
結果:(aa置換
最短、最長使ってみたがダメだった。
不確定の正規表現のパターンを正規表現で置換は無理ゲーなのか。
0302デフォルトの名無しさん
2014/02/19(水) 21:51:04.83素の正規表現だと有限回数の入れ子しか書けないからムリだろう。
鬼車なら、
^(?<文字集合>\[\^?(?:[^\\\[\]]|\\.)*\])
^(?<基本表現>(?:[^\\()\[\]]|\g<文字集合>|\\.)*)
これを
^(?<基本表現>(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)
こうして
^(?<正規表現>\(\g<正規表現>*\)|\g<基本表現>)*
これを
^(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*
こうして
\(\?<id>(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*\)
こうするとか。
基本表現のところがだいぶ適当だから場合によっては怪しい動きをするかも。
部分式呼び出しの使い方間違えててちょっと焦った。
0303デフォルトの名無しさん
2014/02/20(木) 01:26:17.900304デフォルトの名無しさん
2014/02/21(金) 06:53:06.58以下の正規表現で大丈夫でしょうか?
urlは星の数だけあるので全てに適用できるか分かりません
pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-zA-Z0-9+&@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#\/%=_|]/i";
何かアドバイスあれば教えて欲しいのですが
0305デフォルトの名無しさん
2014/02/21(金) 11:05:16.67>>1-4を100回音読してから出なおせ
0306デフォルトの名無しさん
2014/02/21(金) 13:43:02.940307デフォルトの名無しさん
2014/02/21(金) 15:29:38.120308デフォルトの名無しさん
2014/02/21(金) 15:44:18.60厳密でないドコモとかのメールアドレス通らなくて文句言われるしな。
0309デフォルトの名無しさん
2014/02/21(金) 16:07:54.340310デフォルトの名無しさん
2014/02/21(金) 17:18:22.06星の数ほどあっても1億か10億くらいのURLを一つ一つ試してみて、そのうちの99%以上パスすればOKとかにすればいいんじゃね?
99%未満ならパスしなかったURLを元に調整する感じで。
99%とかって具体的な値は自分で決めなきゃいけないけどな。
0311デフォルトの名無しさん
2014/02/21(金) 22:06:55.7010億もいらんな、1億で十分
0312デフォルトの名無しさん
2014/02/21(金) 22:15:48.490313デフォルトの名無しさん
2014/02/21(金) 22:25:56.27ネットやっててその3つしか見たことがない
0314デフォルトの名無しさん
2014/02/21(金) 22:35:51.22http://お名前.com/
が不正と判断されてしまう。
0315デフォルトの名無しさん
2014/02/21(金) 22:37:23.24使ってる人いんの?
0316デフォルトの名無しさん
2014/02/21(金) 22:41:08.51これもURLだな。
0317デフォルトの名無しさん
2014/02/21(金) 22:46:37.53mailto:
file:
tel:
gopher:
javascript:
0318デフォルトの名無しさん
2014/02/21(金) 22:48:43.96ゴップハー?
0319デフォルトの名無しさん
2014/02/21(金) 22:53:18.370320デフォルトの名無しさん
2014/02/21(金) 23:08:56.91たぶん言いたいことを理解できていないと思うから、
RFC1738を100回音読してからまた来るといいよ
0321デフォルトの名無しさん
2014/02/21(金) 23:10:41.50ゴーファー。
ブラウザのプロキシの設定で見かけることがある。
0322デフォルトの名無しさん
2014/02/21(金) 23:12:02.040323デフォルトの名無しさん
2014/02/22(土) 00:42:49.930324デフォルトの名無しさん
2014/02/23(日) 18:20:44.10● PHP
● 検索(抽出)
● 「abc--'--'-"-"--」 から→ 「--------」を取り出す
abc以降の -------- を取り出したい。
ただし '" は不要というパターン
'/.*abc(.+[^"|\']*)/'
/.*abc([^"|\']*)/
これでいけそうでいけないんだよねー
0325デフォルトの名無しさん
2014/02/23(日) 18:33:27.55単純にこうじゃいかんの?
0326デフォルトの名無しさん
2014/02/23(日) 18:36:15.460327デフォルトの名無しさん
2014/02/23(日) 19:17:59.08先頭のabcを捨てて、残った文字列からクォート文字を消すという2手順でいいだろ
0328デフォルトの名無しさん
2014/02/23(日) 19:21:51.03クォート文字の位置が固定ならばできるが、そういう要件じゃなさそうだし
0329デフォルトの名無しさん
2014/02/23(日) 22:18:09.840330デフォルトの名無しさん
2014/02/23(日) 23:01:48.43どうなんだ>>324
0331デフォルトの名無しさん
2014/02/23(日) 23:27:46.750332デフォルトの名無しさん
2014/02/24(月) 01:37:54.800333デフォルトの名無しさん
2014/02/25(火) 02:38:54.15それは「--」と「--」と「-」と「-」と「--」を抽出してから結合してる
正規表現でやるなら(結合を含むから)最低でも置換になる
「'"」の除去をしてから 「--------」を取り出すか
「--'--'-"-"--」を取り出してから「'"」の除去をすれば
抽出と置換の二段階になるけど多分楽に事が済む
0334デフォルトの名無しさん
2014/02/25(火) 17:37:02.74もしかしてプログラム経験無い?テキストエディタの正規表現とは別世界だぞ。
0335デフォルトの名無しさん
2014/02/25(火) 17:47:27.85どんだけショボいエディタ使ってんだよw
0336デフォルトの名無しさん
2014/02/25(火) 20:27:28.662段階に分けるほうが楽
0337デフォルトの名無しさん
2014/02/25(火) 23:33:19.950338デフォルトの名無しさん
2014/02/26(水) 00:33:57.11飛び飛びの領域を単一のマッチ範囲や捕獲式集合として捕獲できる正規表現なんてあるの?
Perlのコードサブパターンとかで拡張すれば出来るかもしれないけど、
普通は複数のマッチ範囲や複数の捕獲式集合として得るしか無いと思うんだが
それと、まともなエディタならPerlとかの特殊極まりない拡張を除けば大体の機能が使えるだろ
>>334>>337
正規表現でプリーズ
0339324
2014/02/26(水) 22:44:02.26可能ならば正規表現で処理したかったのですが、
皆さんのアドバイス通り置換での2段階処理とします。
これの方が楽で確実みたいですしね。
ども、でした。
0340デフォルトの名無しさん
2014/02/27(木) 00:53:58.530341デフォルトの名無しさん
2014/02/27(木) 06:30:21.40黙ってろクズ
0342デフォルトの名無しさん
2014/02/27(木) 07:20:11.35LispのS式でも勉強してみよう
(S式 Symbolic expression)
一応書いておくけど
表現=expression
0343デフォルトの名無しさん
2014/02/27(木) 08:20:03.61elispで使ってるくらいであんま詳しくないけど、sexpは構造でそれが機能かどうかはcar次第では。
正規表現は検索や置換の対象となる文字集合を表すものですしょ。別に名前に表現が入ってるからとか気にしてなかった。
0344デフォルトの名無しさん
2014/02/27(木) 15:19:32.41それを元に正規表現による検索ルーチンが作られて普及した
今ではその検索ルーチンを正規表現エンジンと呼ぶようになってしまい、
正規表現エンジンが受け入れる検索パターンを正規表現と呼ぶようになってしまった
なお、正規表現エンジンは元々の正規表現の意味では通常表現不可能なパターンすら検索する能力を持っている
もはや別物
0345デフォルトの名無しさん
2014/02/27(木) 18:29:51.90ま、その後いわゆる正規表現に折れも一本化したけどな
0346デフォルトの名無しさん
2014/02/27(木) 23:06:44.690347デフォルトの名無しさん
2014/02/27(木) 23:16:15.70じゃあs式も略すならpは余計だよね。
0348デフォルトの名無しさん
2014/02/28(金) 00:48:01.570349デフォルトの名無しさん
2014/02/28(金) 05:41:22.87じゃあ大文字とハイフンが必要ならReg-exだねって(オイ
0350デフォルトの名無しさん
2014/03/01(土) 21:33:30.54さりげなくregexpをdisらないで
0351デフォルトの名無しさん
2014/03/05(水) 12:56:57.66サクラエディタ
●検索か置換か?
置換
●説明
Exampleの文字列を含まない行を削除したい
●対象データ
ABCA Test
BCAA Example
CABA Abc
●希望する結果
BCAA Example
ネットで検索して出てきた^(?!.*Example).+$や^((?!Example).)*$
で試したんですが空行が残ってしまいました
0352デフォルトの名無しさん
2014/03/05(水) 13:09:37.210353デフォルトの名無しさん
2014/03/05(水) 13:15:01.87できました
ありがとうございました!
0354デフォルトの名無しさん
2014/03/05(水) 20:10:58.230355デフォルトの名無しさん
2014/03/06(木) 14:13:12.950356デフォルトの名無しさん
2014/03/07(金) 04:25:15.640357デフォルトの名無しさん
2014/03/07(金) 06:11:48.79ツッコミが必要な正規表現が分からない…出来れば教えてくれ。
0358デフォルトの名無しさん
2014/03/07(金) 07:11:37.81空行もこれに該当するんじゃ?
0359デフォルトの名無しさん
2014/03/07(金) 10:43:45.860360デフォルトの名無しさん
2014/03/07(金) 10:53:01.11否定の後方参照だっけ
後方参照をうまく使えると捗りそうだよね
いまいちパッと使えないorz
0361デフォルトの名無しさん
2014/03/07(金) 11:46:51.76お前恥ずかしい奴だな
0362デフォルトの名無しさん
2014/03/07(金) 22:35:03.250363デフォルトの名無しさん
2014/03/07(金) 22:44:29.690364デフォルトの名無しさん
2014/03/07(金) 23:49:29.370365デフォルトの名無しさん
2014/03/07(金) 23:51:20.94クスクス
0366デフォルトの名無しさん
2014/03/08(土) 00:41:37.590367デフォルトの名無しさん
2014/03/08(土) 14:35:23.35何言ってんだこの馬鹿は。
0368デフォルトの名無しさん
2014/03/08(土) 22:07:40.54まだそんな間抜けな事を言っているの?
君だけだよ?
0369デフォルトの名無しさん
2014/03/09(日) 01:07:09.320370デフォルトの名無しさん
2014/03/09(日) 17:54:46.52何言ってんだ
0371デフォルトの名無しさん
2014/03/09(日) 17:56:38.66入れちゃうとだいたいオーケー
0372デフォルトの名無しさん
2014/03/09(日) 18:57:29.74「みたいに」って書いてあるじゃん
この「耳の聞こえないふりの人」ってのは多分自称ベートーベンの痛い奴の事だよ
ゴーストライターに耳聞こえてることバラされて訴えるって意気込んでるらしいから
ゴーストライター以前にマスコミの取材中にも聞こえてる挙動してて今更なんだが
障害者手帳の不正入手の罪がバレるのはゴーストライターがバレるより怖いらしい
0373デフォルトの名無しさん
2014/03/09(日) 22:09:42.25現在プログラム板のID制導入の投票を実施中です
よろしくお願いします
プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
0374デフォルトの名無しさん
2014/03/10(月) 00:48:00.390375デフォルトの名無しさん
2014/03/11(火) 17:40:04.71これまじ?
0376デフォルトの名無しさん
2014/03/11(火) 18:57:52.90もちろんマジ
0377デフォルトの名無しさん
2014/03/11(火) 19:00:37.92きみを、みてたら、心があつくなって
体があつくなって
,,,,,,よしこさん!
とだきつく
あとは、まずオッパイもみもみ
下にてをのばし
あとは自分で判断しろ
0378デフォルトの名無しさん
2014/03/12(水) 17:16:31.95ID:6zBbVI2I秀丸
●検索か置換か?
置換
●説明
複数行の空行を1つの空行にしたい
●対象データ
●希望する結果
0379378
2014/03/12(水) 17:19:09.32ID:6zBbVI2I^\n+
置換
\n
これだと置換されない。
0380デフォルトの名無しさん
2014/03/12(水) 17:26:30.29ID:iuIDUWkrその環境は知らないけど、^があるのに$がなくて\nって変じゃないか。
単に\n+じゃダメなの。
0381デフォルトの名無しさん
2014/03/12(水) 17:38:06.82ID:Qvoh4cG30382デフォルトの名無しさん
2014/03/12(水) 20:35:10.49ID:9jZOtDPU●Regular Expressionの使用環境
2chMate 0.8.6/NEC/LaVieTab PC-TE510N1B/4.2.2/SR
●検索か置換か?
検索?(NGワード)
●説明
アットwikiを正規表現で当たるようにしたい
要するに
http://www1から200までの数字.atwiki.jp/何とかかんとか/
を引っ掛けたい
●対象データ
特になし
●希望する結果
(例)http://www33.atwiki.jp/atwikibeginner/がNGワード指定される
0383デフォルトの名無しさん
2014/03/12(水) 20:44:53.82ID:iuIDUWkrhttp://www\d+\.atwiki\.jp/.*/
0384デフォルトの名無しさん
2014/03/12(水) 21:14:52.82ID:9jZOtDPUすいません。できませんでした。
htmlタグでもう一度作れますか?
できなければ諦めます
0385デフォルトの名無しさん
2014/03/13(木) 00:04:20.91ID:xoYJgDxQhtmlタグって?
正規表現にチェック入れてないだろ。
0386デフォルトの名無しさん
2014/03/13(木) 06:58:56.57ID:1OBNO3pg0387386
2014/03/13(木) 07:15:45.44ID:1OBNO3pgこれでいいのかな?2chMateとやらの正規表現エンジンの仕様が
分からないから怪しい文字全部にエスケープ付けといた。
あと調べたところ古いバージョンでは正規表現の先頭に / を付ける必要があるらしい。
動かない場合は試してみて。
0388デフォルトの名無しさん
2014/03/13(木) 07:29:23.49ID:2a19jPZtチェック入れてますよ
>>387
ありがとうございます。できました。
0389デフォルトの名無しさん
2014/03/13(木) 08:26:35.42ID:xoYJgDxQ2chMate 0.8.6/SHARP/SH-13C/2.3.4/DR では問題なかった
0390デフォルトの名無しさん
2014/03/13(木) 08:30:17.94ID:2a19jPZt387なら出来ましたよ
0391デフォルトの名無しさん
2014/03/13(木) 08:30:41.83ID:xoYJgDxQNGなんだから、厳密にする必要もない。面倒だから適当にしただけ。
0392デフォルトの名無しさん
2014/03/13(木) 08:35:07.76ID:xoYJgDxQ基本的なとこは包括されてるから、コピペミスってるか、ttpか、多分丸投げだからJavaの正規表現の解釈が変わったか。
アプリ開発してたけど、そういう話は知らないなぁ。
0393378
2014/03/13(木) 08:41:19.60ID:2EBFZUmq\n+だけだと空行以外の文字列の最後にもヒットしてしまいます。
>>381
すみませんヘルプに書いていました。
ありがとうございます。
(?#maxlines:50)^\n+
で置換することができました。
0394381,386 ◆QzqhRqBYxktP
2014/03/13(木) 09:50:43.55ID:1OBNO3pgおそらくh抜き。datには<aタグが入らない板もあるからね。
/.*/ のとこは無くてもいいくらいだね、ハッキング事件のセキュ対応なんだろうし。
>>388>>393
^−^b
0395デフォルトの名無しさん
2014/03/14(金) 09:55:55.35ID:zoiay4j6JavaScript
●検索か置換か?
置換
●説明
同じ文字の4回以上の繰り返しを3回にしたい
●対象データ
ああああああああああああああああああいいいいいいいいいいいいいいいうえおおおおおおおおおおおおおお
●希望する結果
あああいいいうえおおお
0396デフォルトの名無しさん
2014/03/14(金) 10:00:26.17ID:Mhqkzd/y(.)\1{3,*}
置換
$1$1$1
0397395
2014/03/14(金) 11:12:05.63ID:zoiay4j6(.)\1{3,*}だとなぜか上手くいかなかったけど(.)\1{3,}でできました
ありがとうございました
0398デフォルトの名無しさん
2014/03/14(金) 16:48:20.08ID:Mhqkzd/y0399デフォルトの名無しさん
2014/03/14(金) 23:51:23.33ID:YZlgvtQG1行内に沢山文字があって、それを正規表現で検索ヒットさせるんですけど
正規表現は重いから、なるべく、あらかじめ文字コード順に直しておいたほうが良いという事を聞きました
数が膨大になっていけば、バカにならないので、一度全文文字コード順にソートしてみて、正規表現の検索の時間が
どれくらい軽くなるのか試してみようと思うのですが
そこで、文字コードにはShiftJIS等あるそうで、それらによって文字の並び方が違う、らしいのですが
どれが良いのか全く分かりません、それに正規表現にも種類があるのでしょうか
稚拙な質問ですみません、何か質問自体に大きな間違いがあれば、それについても御指摘ください
0400デフォルトの名無しさん
2014/03/14(金) 23:58:33.54ID:jnh1VUPiどこで?
文字コード順にソートできる事例なんて
ほぼないだろ?
0401デフォルトの名無しさん
2014/03/15(土) 00:18:44.37ID:Q3mCogqK0402デフォルトの名無しさん
2014/03/15(土) 00:32:00.47ID:CF1cuZUbもしかして特定の一文字を数えるのに正規表現を使おうとしてる?
そりゃあ正規表現は重すぎるだろうし一文字ずつソートしたほうが速いだろうね。
何がしたいの?
0403デフォルトの名無しさん
2014/03/15(土) 15:22:34.65ID:YATV051M例文もなしに文字コード順とか言われてもイミフ
しかも文字コードの知識すらなさそうだけど、
\xnnnnや\unnnn(nは文字コード値)とかの
の文字コード直接指定の正規表現を使わない限りは
文字コードを意識する必要なんてほぼないよ
0404デフォルトの名無しさん
2014/03/15(土) 15:30:32.85ID:tYn4Fm5x配列の中からある値をサーチするときは
配列を文字コード順でソートしていれば速いんだよ。
ところでだな。正規表現は
文字をサーチするために使うんだよ
0405デフォルトの名無しさん
2014/03/15(土) 17:18:45.26ID:hD2AtX1A0406デフォルトの名無しさん
2014/03/15(土) 18:18:58.17ID:uGEDgr8/自分でも何言ってるのかさっぱり分かりません
それなのに質問してごめんなさい
> \xnnnnや\unnnn(nは文字コード値)とかの
> の文字コード直接指定の正規表現を使わない限りは
> 文字コードを意識する必要なんてほぼないよ
極単純な正規表現しか知らないものですから、一から勉強します
ありがとうございました
0407デフォルトの名無しさん
2014/03/16(日) 09:19:28.06ID:xU+OWlTtこう言ってた人に真意を聞くのが筋でしょう。
たぶんこれを言った人も違う意味で言ったんだと思いますが。
0408デフォルトの名無しさん
2014/03/16(日) 18:15:16.01ID:TS+hDRL9いや[亜-熙]みたいな範囲指定する場合はモロに影響する
ちゃんとキャラクタクラスなどを使えば問題はないのだが、
今度は使えるクラスが文字コードによって異なるっていう…
0409デフォルトの名無しさん
2014/03/26(水) 22:18:12.16ID:vsO28NG40410デフォルトの名無しさん
2014/03/27(木) 06:17:49.40ID:iCbpA3l5正規表現道場 Part2
http://nozomi.2ch.net/test/read.cgi/php/1348048723/l50
0411デフォルトの名無しさん
2014/03/29(土) 00:31:17.46ID:2x5p0G/Eうん、わかった。覚えてたらな。
0412デフォルトの名無しさん
2014/04/12(土) 13:28:47.34ID:4XenY3RDにはマッチしないで
@abcabc
や
@abcdef
にはマッチさせるにはどのように記述したら良いでしょうか?
0413デフォルトの名無しさん
2014/04/12(土) 13:50:15.31ID:U3ze+O2N>>2のように記述したらいいと思うよ。
@abc(abc|def)
0414デフォルトの名無しさん
2014/04/12(土) 14:11:47.17ID:4XenY3RDレスありがとうございます
後出し条件になってしまい大変申し訳ないですが
@abc の後に続く文字列は[0-9a-zA-Z]が連続したものです
例えば
@abcaaa @abcjoioho @abcvvvud
にはマッチして
@abc のみにはマッチしないように記述したいです
申し訳ありませんがもう一度ご教示頂きたいです。よろしくお願いします
0415デフォルトの名無しさん
2014/04/12(土) 14:14:15.07ID:4XenY3RD@defghij @jijoaa @hogehoge
などの文字列にもマッチさせたいです
何度も投稿してしまい本当に申し訳ありません
0416デフォルトの名無しさん
2014/04/12(土) 15:19:18.59ID:s4x1CSLN> @abc の後に続く文字列は[0-9a-zA-Z]が連続したものです
そのまま書けばええやん
@abc[0-9a-zA-Z]+
>>415
何をしたいのかよくわからんけど、@[0-9a-zA-Z] として、アプリ側で @abc を弾いた方がいいんじゃね?
0417デフォルトの名無しさん
2014/04/12(土) 15:21:49.29ID:s4x1CSLNtypo したわ
× @[0-9a-zA-Z] として
○ @[0-9a-zA-Z]+ として
0418デフォルトの名無しさん
2014/04/12(土) 20:05:08.80ID:ngoF8pDl検索です。
<p><a href="http://example.com"></p>
<a href="http://example.com">
このようなデータから、pタグに囲まれているexample.comのみを抜き出したいのですが、
一旦pタグごと抜き出してあとからreplaceするしかないのでしょうか?
0419デフォルトの名無しさん
2014/04/12(土) 20:41:47.82ID:rlCwOjmw@(?!abc)[0-9a-zA-Z]+
0420デフォルトの名無しさん
2014/04/12(土) 23:00:03.30ID:U3ze+O2Nxpathで一発。
と思ったが、a閉じてないし無理か。
その初めて見るデータの仕様がわからないと、どうしようもない。
0421デフォルトの名無しさん
2014/04/12(土) 23:50:11.34ID:jMhZwQAtこれだと
@abcabc
@abcdef
にはマッチしないか
0422デフォルトの名無しさん
2014/04/12(土) 23:50:28.43ID:75P4fa7h0423デフォルトの名無しさん
2014/04/13(日) 00:33:19.28ID:yqZVS2ZT0424デフォルトの名無しさん
2014/04/13(日) 07:57:10.90ID:Dl/ggmgg0425デフォルトの名無しさん
2014/04/13(日) 11:58:54.95ID:wSq/pgWAhtml はそこら辺アバウトだったから
xhtml では xml に合わせたから、解析しやすくなるはずなんだが、アバウトなままのサイトが一杯あるから苦労は変わらないままだったりする
0426デフォルトの名無しさん
2014/04/13(日) 16:31:19.64ID:9NN4C2hO省略可能な奴はちゃんと定義されててアバウトじゃないんだけど、
流通してるHTMLとWebブラウザの実装がアバウトってだけだよ。
最近話題になったやつだと2ch。scの告知画面tinyurl。com/pjstnp7
はbodyタグのオープンとか省略しているけどW3Cの検証機を通る。
# エンコーディング周りはHTTPヘッダで回答してればセーフだし。
どこでこの話聞いたんだっけ・・・
0427デフォルトの名無しさん
2014/04/13(日) 16:44:43.25ID:CQggOOXO0428デフォルトの名無しさん
2014/04/14(月) 06:01:26.20ID:x8/AYQxNhttp://it.slashdot.jp/comments.pl?sid=627849&cid=2574373
そしてスラドのこんな記事の話題をこんなスレで振って返事があるとかびっくりだ。さんきゅ
0429デフォルトの名無しさん
2014/04/14(月) 07:43:22.83ID:HpK6ptq40430デフォルトの名無しさん
2014/04/14(月) 08:06:33.60ID:DuPxyPL70431デフォルトの名無しさん
2014/04/14(月) 09:13:38.05ID:HpK6ptq40432デフォルトの名無しさん
2014/04/14(月) 22:47:36.55ID:qpVJ3EkTIntel厨?(little endian)
0433デフォルトの名無しさん
2014/04/15(火) 13:46:45.24ID:WaetxQT9高低で考えると逆じゃない
0434デフォルトの名無しさん
2014/04/19(土) 15:08:30.61ID:I0Tv5INM0435デフォルトの名無しさん
2014/04/21(月) 10:46:09.60ID:epNqpaJyサクラエディタ 2.1.1.1
●検索か置換か?
置換
●説明
[]内の文字だけにしたい
※ [ と ] と (半角スペース)の3つを消したい
●対象データ
[あいうえお] ←最後に半角スペースあり(以下同じ)
[カキクケコ]
[AIUEO]
[漢字等々]
●希望する結果
あいうえお←最後の半角スペースも消したい(以下同じ)
カキクケコ
AIUEO
漢字等々
0436デフォルトの名無しさん
2014/04/21(月) 12:03:19.19ID:3tZdYhCV置換対象
[(.*) ]
置換後
$1
0437デフォルトの名無しさん
2014/04/21(月) 12:10:07.08ID:3tZdYhCVあとスペースの位置まちがってた
『』の中
置換対象
『\[(.*)\] 』
置換後
『$1』
0438デフォルトの名無しさん
2014/04/21(月) 12:44:34.05ID:EHF6HnLR20行くらいの文字列があります。
それぞれの行の、前後にabcとefgを追加したいです。
abc元の文字列efg
検索文字
(^*$)
置換え文字
abc\1efg
これを実行すると、元の文字列abcefgと各行に追加されます。
どのように正規表現を書けばいいか教えてください。
0439デフォルトの名無しさん
2014/04/21(月) 13:12:33.14ID:7sVNkmyi^(.+)$
置換
abc\1efg
0440デフォルトの名無しさん
2014/04/21(月) 13:38:17.94ID:3tZdYhCV0441デフォルトの名無しさん
2014/04/21(月) 14:49:46.24ID:EHF6HnLRできました!!
ありがとうございます。
>>440
そんな機能もあったんですね、調べてみます。
0442デフォルトの名無しさん
2014/04/24(木) 17:52:09.55ID:V1UpyXxTヤラシイ
0443デフォルトの名無しさん
2014/04/25(金) 20:18:46.86ID:JH0TWYKX「改行を含む0文字以上の任意の文字列」 を指定するにはどうしたら良いでしょうか?
.+
だと改行が含まれません。
対処法を教えて下さい・・・・
0444デフォルトの名無しさん
2014/04/25(金) 20:42:22.63ID:GDJFN5mS0445デフォルトの名無しさん
2014/04/25(金) 20:48:34.44ID:JH0TWYKXすいません上手く行きません。
[\.\n]+
[\s\S]+
これでもダメです。
0446デフォルトの名無しさん
2014/04/25(金) 21:06:21.53ID:JH0TWYKX[.\n]+
これでもダメ。
[\S\s\n]+
これだとマッチしたりしなかったり。
挙動がよく分かりません。
0447デフォルトの名無しさん
2014/04/25(金) 21:48:48.71ID:BpGWRq7/目次− 検索系コマンド− 正規表現− \nを使った複数行検索の際の制限について
秀丸で改行を含む正規表現はうまくいかないのであきらめよう
0448デフォルトの名無しさん
2014/04/25(金) 21:57:52.26ID:JH0TWYKX0449デフォルトの名無しさん
2014/04/25(金) 21:59:23.54ID:JH0TWYKX0450デフォルトの名無しさん
2014/04/26(土) 15:24:01.32ID:FDgGm5F+いろんな文字Text11いろんな文字
いろんな文字Text215いろんな文字
いろんな文字Text351いろんな文字
...
から
Text11
Text215
Text351
を取り出したいのです。
をgrepやsedでトライしたのですが、分りません。
よろしく。
0451デフォルトの名無しさん
2014/04/26(土) 15:48:21.91ID:bHDNIx6Iてきとーだけど
sed 's/^.*\(Text[0-9]*\).*$/\1/'
0452デフォルトの名無しさん
2014/04/26(土) 16:09:16.64ID:FDgGm5F+ありがとうございます。出来ました。
0453デフォルトの名無しさん
2014/04/26(土) 17:58:23.86ID:7YL+swb1の方が楽でない
0454デフォルトの名無しさん
2014/04/26(土) 18:56:42.33ID:FDgGm5F+ありがとうございます。こんな技があったとは。。。素晴らしい。
0455デフォルトの名無しさん
2014/04/26(土) 23:18:57.81ID:VGAf199r0456デフォルトの名無しさん
2014/05/07(水) 18:40:40.37ID:a4cm40CxEmeditor(正規表現エンジン:Perl)
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
評価良い
評価悪い
評価ふつう
●希望する結果
”評価良い”の ”評価” と
”評価悪い”の ”評価” はヒットさせず、
”評価ふつう”の ”評価” のみヒットさせたいです。
0457デフォルトの名無しさん
2014/05/07(水) 18:41:19.38ID:a4cm40Cx下の検索ワードで個々に正規表現検索すると、
評価(?!良い)
評価(?!悪い)
評価(?!良い) で検索すると、
評価悪い
評価ふつう
上の行の”評価”がヒットし、
評価(?!悪い) で検索すると、
評価良い
評価ふつう
上の行の”評価”がヒットします。
評価(?!良い)|評価(?!悪い) で検索すると、
評価ふつうの”評価”のみヒットさせていたのですが、
評価良い
評価悪い
評価ふつう
上の3行全ての”評価”がヒットしてしまいます。
評価ふつうの”評価”のみヒットさせるにはどのようにすれば良いでしょうか。
お分かりの方おりましたら、アドバイス頂けるとうれしいです。よろしくお願いします。
0458デフォルトの名無しさん
2014/05/07(水) 21:20:41.89ID:bY3JnOhr評価(?!良い|悪い)
評価(?!良い)(?!悪い)
0459デフォルトの名無しさん
2014/05/07(水) 22:51:13.63ID:N+3a4ufsそれにしても説明文章ヘタクソだな
0460デフォルトの名無しさん
2014/05/07(水) 23:10:01.42ID:QGVowAzNとか言ってる時点で・・・
Emeditorの正規表現はBoost Regex++や
0461デフォルトの名無しさん
2014/05/08(木) 00:29:38.20ID:ZNqlRNijありがとうございます。試させて頂いたところマッチしました。
そのような書き方になるのですね、とても参考になりました。
文章長くなってスミマセン。
"EmEditor は、Perl の正規表現構文に基づいています"と記載があったので今までPerlだと思ってました。。
確認しましたらBoost Regex++でした。。
0462デフォルトの名無しさん
2014/05/08(木) 04:50:15.85ID:XccdVftY評価(?=ふつう)
でええやん
0463デフォルトの名無しさん
2014/05/10(土) 02:21:54.85ID:8U9D7Dh6すいません遅くなりました。そのような書き方もあったのですね。
試してみたところ正常に動作しました。とても参考になります、どうもありがとうございます。
0464デフォルトの名無しさん
2014/05/10(土) 10:51:15.57ID:OuDEqY/xTextmate
●検索か置換か?
置換
●説明
行末尾から最初に現れるスペースまでを検索し、置換によって該当文字を削除したい
●対象データ
A B C A
B CA A
CAB A
ABC
●希望する結果(各行の末尾にスペースは存在しない)
A B C
B CA
CAB
ABC
よろしくお願いします
0465デフォルトの名無しさん
2014/05/10(土) 15:29:19.68ID:bpNAt6b2http://manual.macromates.com/ja/regular_expressions
正規表現のルールはこちらです、よろしくお願いします。
0466デフォルトの名無しさん
2014/05/10(土) 16:22:48.29ID:bpNAt6b2バッチリでした!ありがとうございました!
0467デフォルトの名無しさん
2014/05/10(土) 19:08:45.30ID:9WYsc5/z置換前先頭には半角スペースあり
置換前:
[^ ]+?$
置換後:
空欄
0468デフォルトの名無しさん
2014/05/11(日) 06:17:56.60ID:cMjkQ9rhsed、grep
●検索か置換か?
置換
●説明
マッチした結果をそのまま置き換えるでなく、
1つ前に改行を入れたい。
●対象データ
0ABC1DEF2GHI3JKL4MNO
●希望する結果
0ABC
1DEF
2GHI
3JKL
4MNO
よろしくお願いします。
0469デフォルトの名無しさん
2014/05/11(日) 06:49:33.52ID:gqNJJWlwマッチ条件を書けよ
どうせ任意の4文字、じゃないんだろ?
0470デフォルトの名無しさん
2014/05/11(日) 07:34:32.90ID:AcT6QrMV単なる数字で始まるならまだしもだけど
0471デフォルトの名無しさん
2014/05/11(日) 07:47:35.54ID:5Cvu+VTDsedはわかるけど、grepコマンドで置換ってどういうこと?
0472デフォルトの名無しさん
2014/05/11(日) 10:34:42.59ID:1lidwdFw(検索キーワード)
<置換>
$1\n
みたいな意味でないかな。ようは置換後に改行を入れるやり方が知りたいと。
0473デフォルトの名無しさん
2014/05/11(日) 22:45:24.09ID:/w7Xo6bZマッチしてほしい
val=0; // 〜〜〜〜
マッチしてほしくない
// val=1;
// val=1;
0474デフォルトの名無しさん
2014/05/11(日) 22:56:17.34ID:zdamCAAuVisual Studio とかで検索した方がいいんじゃないか?
0475デフォルトの名無しさん
2014/05/12(月) 00:30:36.67ID:7jCCFS46マッチしてほしい
val=0; // 〜〜〜〜
マッチしてほしくない
// val=1;
// val=1;
0476デフォルトの名無しさん
2014/05/12(月) 03:34:07.70ID:gfHEQtpmIDEを使って、変数の参照機能を利用すると良い。
0477デフォルトの名無しさん
2014/05/12(月) 11:30:42.85ID:ZtmTFQ/l昔Cで書いたときは使い物にならなくて条件コンパイルの入れ子まで対応したw
0478デフォルトの名無しさん
2014/05/12(月) 12:43:12.46ID:3gM4pAJ70479デフォルトの名無しさん
2014/05/12(月) 17:50:14.54ID:wdXrAHxMふたつ疑問。
一つは既に出ているように検索条件。数字一文字でよいのか?
二つ目は文字列の先頭に現れる数字に対しては改行を挿入しないという解釈でよいのか。
0480デフォルトの名無しさん
2014/05/12(月) 21:04:37.03ID:gfHEQtpm意味を知らないと正確にマッチできないのだから
意味を解釈できるツール、たいていはIDEになると思うけど
そういうのを使わなきゃ。
0481デフォルトの名無しさん
2014/05/13(火) 15:31:48.19ID:KOwQUUXj0482デフォルトの名無しさん
2014/05/14(水) 03:00:27.44ID:JxeTIG1R0483デフォルトの名無しさん
2014/05/14(水) 04:59:25.29ID:zBp780AK正規表現道場 Part2
http://akiba.geocities.jp/hp20140401/goto_sc.html
0484デフォルトの名無しさん
2014/05/15(木) 00:55:52.66ID:0gQNXHoC面白そう。DANより早いコード作ろうか。
0485デフォルトの名無しさん
2014/05/15(木) 02:56:08.49ID:3O8Jckao>>483
わざわざブラウザでしか見れないジャンプページ挟んで広告費稼ぐとか下衆くて不便な誘導はヤメレ
ttp://nozomi.2ch. sc/test/read.cgi/php/1348048723/
でいいだろ
0486デフォルトの名無しさん
2014/05/15(木) 03:17:29.59ID:0gQNXHoCあれはジオが出してる広告。ソース見れば分かるよ。
そもそもこんな過疎スレでアフィなんてやっても年100円いくかどうかでは。
0487デフォルトの名無しさん
2014/05/15(木) 04:10:09.30ID:3O8Jckaoそうだったか、すまん。でもページランク稼ぎじみてて不便なのは変わらん。
0488デフォルトの名無しさん
2014/05/16(金) 01:07:46.28ID:/OuuLVDFクリックで辿り着けるほうが半角スペ消して繋げるより便利でね?
広告がうざかったらadblockとかで。jsで出さなくも出来るけどまんどくせ。
>ページランク
それが狙いならそこら中にURL貼るわな。まぁそんなに警戒しないでくれよんぴる。
0489デフォルトの名無しさん
2014/05/16(金) 07:30:43.48ID:z+fBbvw1なぜにscへ誘導?
0490デフォルトの名無しさん
2014/05/16(金) 08:02:21.58ID:/OuuLVDFhttp://akiba.geocities.jp/hp20140401/2014/006.html
↑誰かツイッターで弾に特攻して。
>>489
sc 、 open2ch のNGワード。 ← 中国並みの言論統制
連投規制なし。 ← ちらしの裏に最適
実のとこそれほど誘導するつもりはない。むしろ人が増えるとちらしの裏にしにくくて困る。
ただ正規表現にガチな人が何人かいるとありがたかったり。間違いを教えてもらえるからね。
0491デフォルトの名無しさん
2014/05/17(土) 09:47:21.78ID:7hm1D3vf> ブラウザでないというと何で見てるの?
Webブラウザと書くべきだったな。すまん。
> クリックで辿り着けるほうが半角スペ消して繋げるより便利でね?
それとドメイン名に半角スペースは使えないからJaneStyleとかだとスペース付きのままでも飛べるし、
半角スペース入れずにピリオドを句読点に変換しておいても国際化ドメインに対応してれば飛べる。
そもそも専ブラで読む気なら半角スペース消してすら、Webブラウザの応答待ってコピペするより速い。
> まぁそんなに警戒しないでくれよんぴる。
ゴメン無理。だってSEO意識しまくってるじゃんか。事ある毎に宣伝してるしそういう風にしか見えないよ。
>> http://nozomi.2ch。sc/test/read.cgi/php/1348048723/169
>> ググりやすさ重視の名前にしました。「正規表現」の書きにくさを回避。
>> 検索でも他サイトと被りそうにないし。
0492デフォルトの名無しさん
2014/05/17(土) 14:40:00.41ID:+edCn2/rおk、専ブラで見てるってことか。
範囲選択 → 右クリ → 「選択範囲をURLとして開く」
・・DANE。 なるほど、半角スペ消さなくても飛べるね。
しかし普通のブラウザで見に来てる人にはそうはいかんのだよ。そういう人用のリンクなわけだが・・。
>SEO
ああ、それは他のサイトと被らない名前にすることで検索結果の一番上に出そうって話だよ。
1つしかヒットしない名前にすれば一番上になるだろって話。どうやら失敗したっぽいけどね・・orz
クルマメーカーが 「車」 で検索されたときの順位を一位にするべく行うSEO対策とは違う。
まぁそんなに警戒する人は無理に来なくてもいいよ、異常に怖がって足がすくんで先に進めないような人より
広告だろうがSEO対策に利用されようが気にすることなく貪欲に情報を求めにくる人に来て欲しい。
0493デフォルトの名無しさん
2014/05/17(土) 21:36:10.71ID:+edCn2/rって、今年の3/1に更新されてるね。まだ現役だったのかw
0494デフォルトの名無しさん
2014/05/18(日) 23:11:17.27ID:vFp/InUl秀丸で
連続しない改行は★に置換。
連続する改行は何もしない。
どう記述すれば良いでしょうか!
検索文字列 → \n([^\n])
置換文字列 → ★\1
これだと連続する改行の末尾でマッチしてしまうのでNGです。
0495デフォルトの名無しさん
2014/05/19(月) 00:38:57.93ID:6okFS6t5でダメなら知らね。
0496デフォルトの名無しさん
2014/05/19(月) 17:45:35.18ID:ByfTztcE『HmJre.dllの正規表現での前方一致/不一致"(?<!xxx)","(?<=xxx)"では改行文字を使うことができません。
かまわずに続行しますか?』
こういう警告が出るけど、一応出来ました!
ありがと!
0497デフォルトの名無しさん
2014/05/20(火) 21:53:50.27ID:yBFoziSghttp://akiba.geocities.jp/hp20140401/2014/007.html
0498デフォルトの名無しさん
2014/05/22(木) 22:54:50.17ID:cKOVk0RX返事とても遅くなりました
助かりました
ありがとうございます
0499デフォルトの名無しさん
2014/05/23(金) 16:19:14.53ID:M32fb6pL0500デフォルトの名無しさん
2014/05/25(日) 00:46:30.08ID:fP8zkgQwhttp://akiba.geocities.jp/hp20140401/2014/008.html
連投規制が解けないのでsc見限りました・・。
0501デフォルトの名無しさん
2014/05/25(日) 01:32:03.34ID:ILOCnL5n0502デフォルトの名無しさん
2014/05/25(日) 01:41:37.24ID:fP8zkgQwというか1日10アクセスのサイトでアフィなんかやってたらアホだわ。
おそらく正規表現メモや雑技たんのアフィでさえ雀の涙も儲かってないはず。
正規表現を調べに来たような奴がアフィ踏むわけないって。
0503デフォルトの名無しさん
2014/05/26(月) 11:23:37.93ID:T5nGq6IH0504デフォルトの名無しさん
2014/05/26(月) 12:08:22.37ID:ptXAqcmgスペース空けてても拒否されたωωω
0505デフォルトの名無しさん
2014/05/26(月) 12:34:16.85ID:LnM16LwK0506デフォルトの名無しさん
2014/05/27(火) 19:07:51.35ID:vDTcjh58open2ch.net
machi.to
sakura.ne.jp
0507デフォルトの名無しさん
2014/06/03(火) 17:18:14.82ID:Bzx3XwCm秀丸
●検索か置換か?
置換
●説明
行の一番最後の全角文字から後を削除したい。
●対象データ
東京 abc 大阪静岡 123 名古屋 apple orange
●希望する結果
東京 abc 大阪静岡 123 名古屋
宜しくお願いします。
0508デフォルトの名無しさん
2014/06/04(水) 02:16:44.71ID:25eHsuea(.+[^ -゜]).+$
置換
\1
0509デフォルトの名無しさん
2014/06/04(水) 02:53:24.09ID:BVzfB4Fw望み通りの事が出来ました!! 有難うございます。
教えて頂いた書式の意味を勉強して、応用ができるようにしたいと思います。
本当に有難うございました。
0510デフォルトの名無しさん
2014/06/06(金) 03:41:15.02ID:fLlNLsWw.NET
●検索か置換か?
検索
●説明
詳説正規表現第2版のCSV処理の正規表現
(?:^|,)(?:"((?>[^"]|"")*)"|([^",]*))
これでは一番目の値が空の場合、2番目の値が取得できなくなります。
後方のカンマでマッチさせるよう (?:^|,) を (?:$|,) にすると
(?:"((?>[^"]|"")*)"|([^",]*))(?:$|,)
となりますが、今度は最後に余計な空のマッチが発生してしまいます。
プログラムを使って解決はできるのですが、正規表現だけで両方の
問題を解決できる方法はありますでしょうか。
0511デフォルトの名無しさん
2014/06/06(金) 05:03:28.72ID:DhW11ZOHどっちかというと""で括られた,区切りの部分に誤爆しかねない事の方が気になるわ。
とりま1回マッチ取る毎に検索再開位置を+1でもして、文字列超超えたら終了しとけ。
0512デフォルトの名無しさん
2014/06/06(金) 05:38:23.63ID:89LsrRqjperl5.14.2では問題なくキャプチャ出来てる。
.NETでは最初のマッチに成功したらミッションが1歩進んでしまうんだろうね。
正規表現テスター (Flash ActionScript3.0)
http://1st.geocities.jp/neeetest/as3_regexp.html
このテスターでは2つ目がマッチしない現象が再現出来た。
ここでは (?:^|(?<=,)) とすれば上手く動くようだ。
0513デフォルトの名無しさん
2014/06/06(金) 08:12:07.27ID:DhW11ZOH(?:^|,)で、1項目目が0文字だと1項目目と2項目目の開始位置が同一になるならそりゃ駄目だわ。
だが開始位置が0文字目同士って扱いになるなら初回が最長マッチ(2項目目)にならないってのはどーなんだ…
0514デフォルトの名無しさん
2014/06/06(金) 09:44:53.07ID:89LsrRqj詳説正規表現を読んでいればそういうセリフは出てこないはずなんですが・・。
0515510
2014/06/06(金) 15:00:43.52ID:fLlNLsWw> .NETでは最初のマッチに成功したらミッションが1歩進んでしまうんだろうね。
こちらの仕様は言語を問わず0文字にマッチした場合、延々と0文字にマッチし続けないために1歩進むもの
だと思っていました。
> ここでは (?:^|(?<=,)) とすれば上手く動くようだ。
こちらのパターンでいろいろ試してみましたが、全て上手くいきました。ありがとうございました!
私も戻り読みは考えたのですが、後続のグループで消費されないカンマの処理が必要になるかと思い込んで
あきらめてしまいました。。。
0516デフォルトの名無しさん
2014/06/06(金) 17:20:11.54ID:89LsrRqj1番目のマッチと2番目のマッチは同じ位置でも違う結果になるから
perlはループではないと判定する、というのをどこかで読んだような。
0517デフォルトの名無しさん
2014/06/06(金) 17:27:48.95ID:IK3e9ito0518デフォルトの名無しさん
2014/06/06(金) 17:40:52.00ID:w3KzEqPi0519デフォルトの名無しさん
2014/06/06(金) 18:14:25.07ID:DhW11ZOHすまん、読んでないから代わりにMSDNを読んだんだ
>>515
カンマ消費したいなら(?:^|(?<=,))にしてケツに「,?」つけときゃいい
0520デフォルトの名無しさん
2014/06/08(日) 20:25:33.98ID:s2VYdfCn知ったかぶりしたいだけのアホみたいなレスしか付けられてない。完全スルーされてる理由がこれ。
0521デフォルトの名無しさん
2014/06/08(日) 20:43:06.29ID:TQW0yU/10522デフォルトの名無しさん
2014/06/08(日) 21:01:38.94ID:qc9K162V0523デフォルトの名無しさん
2014/06/08(日) 21:10:12.04ID:UQpq0lvzNTTって公務員気質だよな。こんなんで、経営がやばいって泣き付いて、グループ割引を認め
させようとするの、おかしい気がする。
0524デフォルトの名無しさん
2014/06/08(日) 23:05:24.99ID:Z/+4RY6H●Regular Expressionの使用環境
javascript
●検索か置換か?
置換
●説明
{{ と }} で囲まれた文字を削除したい
改行あり
●対象データ
{{ABCA
BCAA}}
CABA
{{ABCA}}
●希望する結果
CABA
0525デフォルトの名無しさん
2014/06/09(月) 00:27:18.65ID:kYVhWaqv0526デフォルトの名無しさん
2014/06/09(月) 03:02:54.27ID:+aXF6mrh準専用線的な使い方されてたりするとサービス切り捨てられないんじゃないの?
0527デフォルトの名無しさん
2014/06/09(月) 07:51:38.08ID:v4Ko1KtV遅くても、高くても、確実に接続できると言うことが重要な用途かあるんよ
0528デフォルトの名無しさん
2014/06/09(月) 11:16:42.51ID:Q8TzlagX0529デフォルトの名無しさん
2014/06/10(火) 15:59:32.39ID:sYvmPpPg正規表現道場 Part2
http://nozomi.2ch.net/test/read.cgi/php/1348048723/208
208 名前:nobodyさん[] 投稿日:2014/06/09(月) 20:39:55.26 ID:Xlk9Lxk9
javascriptでhtmlタグ内以外での検索をしようとしていますが、上手く行きません。お助け下さい。
lat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m");
body.match(reg);
console.log(reg.index);
13が返って欲しいのですが、undifinedになります。
0530デフォルトの名無しさん
2014/06/10(火) 18:08:47.23ID:VWf0ifMQ0531デフォルトの名無しさん
2014/06/10(火) 18:54:55.19ID:hjE5rbOB色々と間違ってる
・文字列中に「\」を記述するなら、「\\」と書く必要がある
・RegExpオブジェクトとRegular Expression オブジェクトを混同している
indexはRegExpオブジェクトである(書くなら、re.indexではなく、RegExp.index)
・まず、先頭の^>[^<]だが、>の後に<でない1文字がくることを示しているので
「>あ」が相当するのでその後に「あい」はもうないのでマッチしない
0532デフォルトの名無しさん
2014/06/10(火) 19:00:17.77ID:m0Hs+iOachromeの最新版(バージョン 35.0.1916.114 m)
のjavascript
●検索か置換か?
検索
●説明
htmlのタグ以外でのテキストを検索、位置を取得したい
●対象データ
<a href="あい">あい</a>
●希望する結果
13
以下のように書いて見ましたがダメでした。
13が返って欲しいのですが、undifinedになります。お助け下さい。
また、
http://nozomi.2ch.net/test/read.cgi/php/1348048723/208
より誘導されてきました。
lat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m");
body.match(reg);
console.log(reg.index);
0533デフォルトの名無しさん
2014/06/10(火) 19:06:10.17ID:m0Hs+iOa0534デフォルトの名無しさん
2014/06/10(火) 19:19:12.04ID:m0Hs+iOalat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[\\s\\S]*?" + lat + "[\\s\\S]*?<","m");
var myArray = reg.exec(body);
console.log( myArray.index);
0535デフォルトの名無しさん
2014/06/10(火) 21:20:18.18ID:hjE5rbOB勘違いしてるようだが、mフラグは、マルチラインで各行ごとに^$をマッチさせるもの
例 ">あ\r\nあいう\r\nえお" で、
re=/^あ/m だと2行目の「あ」が
re=/う$/mでも2行目の「う」でマッチする
あと余計なお世話かも知れんが、何を求めるのかにもよるが
<が\でエスケープされて使われてたりタグがネストされてたりした場合問題ないのか?
0536デフォルトの名無しさん
2014/06/11(水) 00:06:08.14ID:xZSwObigRegExpオブジェクトとRegular Expressionオブジェクトって何だ…って思ったが、
RegExpインスタンスとRegExpオブジェクトのことかな。
ただ、MDN見る限り、どっちのオブジェクトにもindexなんてプロパティは無い。
indexは文字列のmatchメソッドにgフラグなしのRegExpインスタンスを渡した場合か、
RegExpインスタンスのexecメソッドを使った場合に戻ってくる配列風オブジェクトのプロパティ。
0537524
2014/06/11(水) 23:03:46.46ID:lJHLCR0d(お返事なのかな?)
使い方がわからなかったのですが[\s\S] ってどういう意味でしょうか?
.(ピリオド)と同じだと思うのですが違うのでしょうか?
0538デフォルトの名無しさん
2014/06/11(水) 23:48:25.28ID:GYXfPDYRかもね
javascriptの挙動なんかしらね
0539デフォルトの名無しさん
2014/06/12(木) 00:59:23.35ID:B2xmHfb6事前に改行取っちゃうのが良いと思う
replace(/\r\n/g,'')
0540524
2014/06/12(木) 02:49:59.98ID:rnw2O6YE改行を含めるか含めないかですね。理解しました。
すみません。これだけだと524で書いた例が達成できませんでした。
{{ABCA
BCAA}}
CABA
{{ABCA}}
これにたいして/\{\{[\s\S]+\}\}/gで検索して空文字に置き換えようとすると
{{ABCA
^^^^^^
BCAA}}
^^^^^^
CABA
^^^^
{{ABCA}}
^^^^^^^^
と、一行目の先頭の {{ と 四行目の最後の }} までが範囲になってしまい、
三行目まで含まれてしまって三行目も消えてしまいます。
一行目の先頭の {{ と 二行目の最後の }}、四行目の先頭の {{ と 四行目の最後の }}
という風にマッチしてほしいです。
0541デフォルトの名無しさん
2014/06/12(木) 05:06:48.19ID:19dxnqrT行頭、行末って縛りも入れたいならmオプション足して^と$でパターン挟めばよかったかと。
0542デフォルトの名無しさん
2014/06/12(木) 06:02:53.39ID:Tz9QxUUt人間だからミスするのは仕方ない。が、これはミスじゃない。
ウソをついてるだけだ。愉快犯とかそういうレベル。
0543デフォルトの名無しさん
2014/06/12(木) 07:14:40.92ID:QxIJYTkG{{ }}を削除するのに、JSではそれに一致しないという、
否定形がないので難しい
否定形があれば、一致しない方を取り出せる
String.replaceで、ヌル文字に置換しようと思ったが、
これは全箇所ではなく、1つしか置換しない
結局、1文字ずつ処理した方が速いかも
1行ずつではなく、改行をまたいでも(複数行で)
一致させるには、m オプションを付ける
{, } は正規表現のメタキャラクタなので、
\(バックスラッシュ)でエスケープする。\{, \}
^ で行の始まり、$ で行の終わりを示す
例、^A, $A (行頭、行末のAに一致)
>>529-536
JQueryの、:contains で要素の内容に、
部分一致したすべてのものを取得できる
だが、text()を使うと、すべての文字列が連結されてしまうので、
map を使って、配列に格納する
そしてその後、その配列を処理すれば?
ttp://www.jquerystudy.info/reference/traversing/map.html
0544デフォルトの名無しさん
2014/06/12(木) 07:43:03.95ID:19dxnqrT指摘はもうちょい具体的にやれや荒らしモドキ。せめてアンカー打て。
>>543
純粋な検索でパターン以外を探すのはだるいけど、要求は置換だからパターンでマッチさせて空文字列に置換すれば終わり。
JavaScriptの「m」フラグは「^」と「$」がマッチする場所を文字列全体から各行単位にするオプション(>>535)。
正規表現エンジンや実装によっては「.」が改行文字を含むかどうかが変化する場合もあったかな。
0545デフォルトの名無しさん
2014/06/12(木) 08:56:07.30ID:28owxB+5知らないなら黙ってりゃいいのに。ウソ教えて誰が得するんだ?
>>524
{{ABCA
BCAA}}
CABA
{{ABCA}}
をキミの仕様通りに置換すると
(空行)
CABA
(空行)
だろ。
それなら
txt.replace(/{{[^}]+}}/gm, "") == "\nCABA\n\n"
>>524のとおりに}}の後の改行も削除したいなら
txt.replace(/{{[^}]+}}\n?/gm, "") == "CABA\n"
0546デフォルトの名無しさん
2014/06/12(木) 08:59:37.25ID:28owxB+5としたつもりだった。
"{{ABCA\nBCAA}}\nCABA\n{{ABCA}}".replace(/{{[^}]+}}\n?/gm, "") == "\n\CABA\n\n"
"{{ABCA\nBCAA}}\nCABA\n{{ABCA}}".replace(/{{[^}]+}}\n?/gm, "") == "CABA\n"
0547デフォルトの名無しさん
2014/06/12(木) 16:41:13.40ID:Tz9QxUUtあ、ごめん。>>531宛て。
>>545-546
/m の意味を分かってなさそう。>>544に書いてあるよ。
>>543
>否定形があれば、一致しない方を取り出せる
これ何をしたかったのかちょっと気になる。 [^ ] の話ではなさそうだし。
0548デフォルトの名無しさん
2014/06/12(木) 19:17:20.11ID:B2xmHfb6って検索してみたら
http://msdn.microsoft.com/ja-jp/library/cc427722.aspx
正規表現パターンとそのパターンの適用方法を識別するフラグを含むオブジェクトです。
re = new RegExp("Spain","i"); // Regular Expression オブジェクトを作成します。
解説
Regular Expression オブジェクトを RegExp オブジェクトと混同しないようにしてください。
名前は似ていますが、この 2 つのオブジェクトには明確な違いがあります。
Regular Expression オブジェクトのプロパティには特定の Regular Expression のインスタンスによる
一致に関する情報だけが格納されのに対し、グローバルな RegExp オブジェクトのプロパティロパティには
一致が検出されるたびに更新される情報が格納されます。
これを読むとRegExpオブジェクトとRegExpインスタンスの違いかな?って思うが
Regular Expression オブジェクトには、文字を組み合わせた文字列検索 (正規表現による検索) を行う場合
に使用するパターンを格納します。
Regular Expression オブジェクトを作成した後に検索を実行するには、このオブジェクトを文字列の
メソッドに渡すか、または文字列を Regular Expression オブジェクトのメソッドのどれかに渡します
この場合、Regular Expression オブジェクトの結果は match メソッドによって使用されます
てあるから、re = /pattern/[flags] がRegular Expression オブジェクトであることを言ってるんだと思う
他サイトでも、正規表現オブジェクトっていったらこれを指すようだ
http://www.tohoho-web.com/js/regexp.htm
インスタンスによる一致に関する情報だけってのが、lastIndexプロパティのことを指すってことかな?
0549デフォルトの名無しさん
2014/06/12(木) 22:48:52.95ID:Tz9QxUUtvar str = '<a href="あい">あい</a>';
reg = new RegExp( ">[^<]*?" + lat );
var ans = str.match( reg );
console.log( ans.index );
>>531は間違ってるとは言えないな。他の書き込みも正しいしちゃんと分かってる人だ。
訂正してお詫びします、申し訳ない。
0550536
2014/06/13(金) 00:20:21.31ID:OKMjmph6あーJScriptとその他JavaScript実装で名前や仕様が違う部分だったのか。
でも普通にRegExpオブジェクトとRegExpインスタンスの違いってことでいいんじゃないかな。
変数名としてのRegExpと型としてのRegExpが紛らわしいから後者をRegular Expressionと呼んでるだけかと。
生成の方法もconstructorやinstanceofの出力も、他のJavaScriptの実装と大して変わらん。
一部互換性の無いプロパティが存在してる位だ。RegExpオブジェクトの型はFunction。
RegExp
typeof=function
instanceof=Object,Function
constructor=function Function()
RegExpオブジェクトとか、グローバルRegExpオブジェクトと呼ばれるもの。
lastIndexプロパティを持つ。JScriptではindexプロパティも持つ。
new RegExp()
typeof=object
instanceof=Object,RegExp
constructor=function RegExp()
RegExpインスタンスとか、Regular Expressionオブジェクトとか、Regular Expressionのインスタンスと呼ばれるもの。
lastIndexプロパティを持つ。
/^/.exec('')
typeof=object
instanceof=Object,Array
constructor=function Array()
マッチ結果とか配列とか呼ばれるもの。
indexプロパティを持つ。
0551536
2014/06/13(金) 00:21:03.26ID:OKMjmph6というわけで、JScript以外ではダメっぽいけど「JScriptなら」それで正しかったわ…すまん
>>549
いや、JScriptの仕様に従うならconsole.log(RegExp.index);でいいよ。
console.log(ans.index);はJScript以外でも使えるやり方でRegExp.indexは関係ない。
ansは配列と互換性がある、固有の名前が示されていない配列系統のオブジェクトで、
RegExpオブジェクトでもRegular Expressionオブジェクトでも、それらのインスタンスでもない。
0552デフォルトの名無しさん
2014/06/13(金) 02:12:34.12ID:1lb2UA6a誤解する人は皆無だったと思われる
そんなに避難することか?
それに正規表現オブジェクト(Regular Expression Objectの訳か?)、
RegExpオブジェクトって日本語はそれこそ山のように各サイトで使われてるよ?
Windowsは、IEが標準なんだし
0553デフォルトの名無しさん
2014/06/13(金) 03:29:56.54ID:OKMjmph6名称は判り難いだけだしあの説明でも別にいいんだけど、
RegExp.indexはJScript専用だし注釈入れないとダメだろ。
>>529の質問の時点ではJavaScriptとしか言われて無い。
イマドキはWindows欧州版はIEがデフォですらない筈だし、
IEのシェアも(統計に寄るが)既に6割切ってる状態だぞ?
0554デフォルトの名無しさん
2014/06/13(金) 03:41:53.11ID:1lb2UA6a注釈はあったほうが確かに親切だね
でもindexとかプロパティ名を自分から持ち出してくるぐらいだから
reのプロパティじゃ無いっていう一言ですぐ気が付くと俺は思うよ
それを何であんなにボロクソに言わなきゃならんのかそっちの方がわからん
0555デフォルトの名無しさん
2014/06/13(金) 03:55:33.34ID:1lb2UA6aボロクソに言ったのは別人なのか、失礼
でも例えば、説明の単語の意味が間違ってて頓珍漢だったとしても、
言いたいことは万人に伝わるから感謝されることはあっても貶すのは何故だったのかな?
それともその意図が万人に伝わるって思うのは俺の贔屓目かな?
0556デフォルトの名無しさん
2014/06/13(金) 04:21:21.81ID:Uqy9EvnJ・・と思ったらいつの間にかIEもconsole.logに対応してた。
0557デフォルトの名無しさん
2014/06/13(金) 04:29:56.23ID:OKMjmph6いや俺(ID:xZSwObig ID:19dxnqrT ID:OKMjmph6)は、
>>529の質問をした奴ではないから感謝云々はイミフだし、
回答を貶したつもりは特に無いんだが…誰に言ってるの?
俺が>>531に対してレスしたのはMDNの基準で名称が違うって点と、
(これはMSDNの基準では正しい名称だから551で謝ってる)
RegExp.indexがJScript固有だから一般には使えないという指摘だけ。
まぁそろそろスレチだから謝罪要求ならそのへんにしとけよ。
0558デフォルトの名無しさん
2014/06/13(金) 04:39:06.42ID:1lb2UA6a別に謝ってくれなんていってないだろ
質問に間違ってる箇所を抜け無く指摘してて、質問者はすごく助かっただろうなって思ったところに
嫌なもん見ちゃって、しかもそれが君だと思ったんだよ
君が文句言ってたんじゃなかったんで、そこは俺の勘違いだ
それにちゃんと謝ってるレスも見てるから更に謝れっていうつもりは毛頭なかった
ただ、何故それほどの勢いでボロクソにいったのか、言った奴は何を思ってたんだろう?
って思っただけなのさ
0559543
2014/06/13(金) 05:35:04.76ID:hNNRznvy>String.replaceで、ヌル文字に置換しようと思ったが、
>これは全箇所ではなく、1つしか置換しない
gフラグを付けると、一度に複数箇所の置換ができるのか
そういう例を載せているサイトが、ほとんどなく、
MDNなどでも、簡単な例しか載せていないから、勘違いした
簡単な例しか載せていないサイトの作者は、
実際にプログラミングしたことないのかも。
一度に複数箇所の置換をするのは、当たり前なのに
>>547
>否定形があれば、一致しない方を取り出せる
{{ }}を削除するんだから、それら以外を取り出せばいいでしょ?
他の言語みたいに、一致する・しないを、
invertとかで反転できれば楽なのに、と思った
0560デフォルトの名無しさん
2014/06/13(金) 09:39:52.49ID:Uqy9EvnJ>簡単な例しか
/gを知らなくてもwhile文でなんとかなるという。
>invert
面白い考え方だなぁ、splitの区切りとして \{\{.*?\}\}\r?\n? を使えばそれっぽい動作に。
0561デフォルトの名無しさん
2014/06/18(水) 23:35:08.75ID:ZhuMT17MPerl
●検索か置換か?
検索
●説明
前に指定したデータを含まない、「スケート」だけマッチさせたい
●対象データ
アイススケート
ローラースケート
スケート
(?<!アイス)(?<!ローラー)スケート
上記の正規表現文で、3行目のスケートだけマッチ出来るようになったのですが、もっと簡略化して書きたいです。
なにかよい書き方はないでしょうか。
0562デフォルトの名無しさん
2014/06/19(木) 00:56:54.71ID:bX6gAL+1必要に応じてmフラグを追加すること。
0563デフォルトの名無しさん
2014/06/19(木) 01:09:00.80ID:BHBkF7FIそれだと質問者の題意を外しているよ
0564デフォルトの名無しさん
2014/06/19(木) 11:28:05.43ID:fmMr1ZfNがマッチするべきなのかそうでないのかが質問からでは分からないね。
質問するときはなるべく回答者から質問し返されないように書こう。
これが分からないと正規表現作れないので答えは保留。
0565デフォルトの名無しさん
2014/06/19(木) 11:34:09.71ID:fmMr1ZfN文の中からマッチさせたいとなると書き方変わってくるよ。
0566デフォルトの名無しさん
2014/06/19(木) 15:10:40.02ID:bFqlqoZb失礼しました、言葉不足でした。
(?<!アイス)(?<!ローラー)スケート
前方で指定したアイスとローラー以外は一致させたいので、フィギュアスケートはマッチをさせたいです。
データは1行につき、複数あることもあり、文中に出てくる場所はランダムとなります。
(?<!アイス)(?<!ローラー)スケート を (?<!アイス|ローラー)スケート のように、上手く簡略化して書けないかなと思ったのですが、難しいでしょうか。
一応今の指定でもマッチさせることは出来るのですが、毎度 ?<! の指定でミスが出そうなので。。
0567デフォルトの名無しさん
2014/06/19(木) 18:12:42.91ID:fmMr1ZfN(?<!アイス)(?<!ローラー)スケート
これで期待通りな動作になってるならこれがベストです。
後ろ読みには制限があって文字数の異なるものを分岐で一緒には出来ません。
後ろ読みを使わずに作る方法もあるけど複雑になるのでおすすめ出来ません。
0568563
2014/06/19(木) 23:17:04.59ID:a52+QUcr>>566
Perl 5.18.2では可変長の先読みは未対応というエラーが出るから、諦める。
5.20ではどうなっているのか知らない。
RegEx一発でどうにかしようとせずに、NGキーワード指定のところを変数化して
1. スケートを含む単語を抽出
2. NGキーワードを持つものを弾く
という単純な2種類の処理を組み合わせる
下のサンプルは1が終わったものとしてリストとして出発したもの
my @ngkeyword = qw(アイス ローラー);
my @target = qw(アイススケート ローラースケート スケート フィギュアスケート);
foreach my $target (@target) {
my $ok = 1;
foreach my $ngkeyword (@ngkeyword) {
$ok = 0 if $target =~ m/(?<=$ngkeyword)スケート/;
}
say $target if $ok;
}
0569デフォルトの名無しさん
2014/06/19(木) 23:21:01.53ID:a52+QUcr0570デフォルトの名無しさん
2014/06/19(木) 23:29:17.00ID:bX6gAL+10571デフォルトの名無しさん
2014/06/20(金) 10:47:03.82ID:CECmTvf5>データは1行につき、複数あることもあり、文中に出てくる場所はランダムとなります。
1、"文章" の中にデータが複数回出てくることがある
2、1行につきデータが1つ以上あるCSVみたいな形式のデータ
どっちの意味なんだろうね?
ちなみにperl5.14以降なら (*SKIP)(*F) を使うことで後ろ読みを回避出来ます。
それ以前のperlでは \K と (?> ) を使って頑張って書くしかないので現実的ではありません。
やはり (?<!アイス)(?<!ローラー)スケート が一番簡潔で良いでしょうね。
0572デフォルトの名無しさん
2014/06/21(土) 17:10:18.19ID:YtO/rTsZ皆さんレスありがとうございます。
>1、"文章" の中にデータが複数回出てくることがある
>2、1行につきデータが1つ以上あるCSVみたいな形式のデータ
失礼しました、1を指していました。
考えてみましたが、一番簡潔ということで当初の
(?<!アイス)(?<!ローラー)スケート
で実現させて頂こうと思います。
正規表現は難しいですね。。皆さんのご意見大変勉強になりました。
貴重なお時間ありがとうございます。
0573デフォルトの名無しさん
2014/06/28(土) 15:30:36.45ID:zyFd2JCzif( a==b ) ...
と比較すべきところを、うっかり
if( a=b ) ...
と代入してしまっている行を検索する正規表現を教えてください。
0574デフォルトの名無しさん
2014/06/28(土) 15:35:14.65ID:JVYDyHql君も有り得なくなる訓練したほうがよくね?
0575デフォルトの名無しさん
2014/06/28(土) 15:47:47.99ID:2gyd2nFZlintとか使えないん
0576デフォルトの名無しさん
2014/06/28(土) 21:26:59.74ID:Rp60SifU0577デフォルトの名無しさん
2014/06/28(土) 21:37:31.34ID:JJOy/9cW秀丸
●検索か置換か?
置換
●説明
行の末尾が「。」か「?」か「」」で終わってない時、その行の改行を消したい
●対象データ
〜だと
思われる。
●希望する結果
〜だと思われる。
0578デフォルトの名無しさん
2014/06/28(土) 23:28:40.94ID:zyFd2JCz>>576 確かに警告レベルを上げるとこのうっかりミスを検出できるんですが、
他の警告も数百行くらい出て来て、その中に埋もれて探せません。
VisualStudioでなくて良いので、一般的な正規表現で良いので
if( a=b ) ...
の行を検出する記述教えてください。
0579デフォルトの名無しさん
2014/06/29(日) 00:00:47.51ID:XRj+RUkP> 他の警告も数百行くらい出て来て
VCなら警告を個別に抑制するオプションが有るし、
警告食らうようなコード書く癖を直したほうがバグは減る。
0580デフォルトの名無しさん
2014/06/29(日) 00:39:43.79ID:v5LOBQZB0581デフォルトの名無しさん
2014/06/29(日) 00:43:38.39ID:v5LOBQZBはい
\Qif(a = b)\E.+
0582デフォルトの名無しさん
2014/06/29(日) 03:06:19.24ID:9gOHiVwx「if (a == b) をうっかり if (a = b)にしちゃった場合」
の対処を考えるとバカがいるんだ
いるんだなあ
危ないからプログラミングなんかやめな
0583デフォルトの名無しさん
2014/06/29(日) 06:40:05.84ID:MWhv4yeK定数=a でコンパイルエラーになり半減する。
0584デフォルトの名無しさん
2014/06/29(日) 07:36:48.28ID:7WQEgw+o0585デフォルトの名無しさん
2014/06/29(日) 11:32:28.89ID:d4tnsDO5> 警告食らうようなコード書く癖を直したほうがバグは減る。
マイクロソフトが提供してるヘッダーファイルが指摘されたりするんだが (w
0586デフォルトの名無しさん
2014/06/29(日) 14:45:40.31ID:5EYPycteそもそもワーニングメッセージが1000あろうが検索すれば問題ないと思うんだが?
0587デフォルトの名無しさん
2014/06/29(日) 16:51:42.99ID:8UDboPcg0588デフォルトの名無しさん
2014/06/29(日) 18:01:07.24ID:XRj+RUkP衝突するような組み合わせでインクルードしてるって落ちじゃねぇだろうなぁ・・・?
0589デフォルトの名無しさん
2014/06/30(月) 01:48:31.63ID:U4fGRyyk0590デフォルトの名無しさん
2014/06/30(月) 07:53:07.15ID:NEvD+hUX> そもそもワーニングメッセージが1000あろうが検索すれば問題ないと思うんだが?
ビルドの度に?
0591デフォルトの名無しさん
2014/06/30(月) 08:05:17.90ID:lkR4e2Ilそれは自分が書くコードに警告を残して良い理由にはならない。
そういう言い訳する派遣はその場で、契約解除だ。
0592デフォルトの名無しさん
2014/06/30(月) 09:43:57.26ID:lJxnkRTG自動でやれば問題ないと思うが。
0593デフォルトの名無しさん
2014/06/30(月) 09:48:02.20ID:lJxnkRTG定数を先行させる癖をつけても、左辺に代入可能な式が来てしまっては元も子もない。
例えば、class Foo に参照を返すmember()があったとして、
Foo.member() = a は警告対象にならない。
# そもそもconst参照を返せよって話になるのだが、const参照を返さない輩は多い。
0594デフォルトの名無しさん
2014/07/01(火) 13:40:32.37ID:iCkx4BHg定数を右辺にして、あとはIDEに丸投げといったところに落ち着いたなあ
0595デフォルトの名無しさん
2014/07/01(火) 15:52:08.44ID:RSTmOvHv半減と言っているのに。
0596デフォルトの名無しさん
2014/07/02(水) 11:00:35.70ID:zVF2m6elecho "A2BS" | grep [0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]
で出来たのですが、100文字とかになると大変なのですが、
もっとスマートな書き方ありますか?
0597デフォルトの名無しさん
2014/07/02(水) 11:18:03.11ID:SktLeQv9echo 'ABCDA' |grep '^[0-9a-zA-Z]\{4,4\}$'
0598デフォルトの名無しさん
2014/07/02(水) 11:20:11.15ID:SktLeQv9間違えた。
echo 'ABCDA' |grep '^[0-9a-zA-Z]\{4\}$'
0599デフォルトの名無しさん
2014/07/02(水) 11:37:30.97ID:zVF2m6elありがとうございました。
出来ました。感謝です。
0600デフォルトの名無しさん
2014/07/03(木) 22:40:52.01ID:j5QsBrGP$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------
ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
0601デフォルトの名無しさん
2014/07/03(木) 22:41:23.55ID:j5QsBrGP$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------
ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
0602デフォルトの名無しさん
2014/07/03(木) 22:42:46.59ID:j5QsBrGP$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------
ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
0603デフォルトの名無しさん
2014/07/03(木) 22:43:11.56ID:j5QsBrGP$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------
ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
0604デフォルトの名無しさん
2014/07/03(木) 22:44:48.06ID:j5QsBrGPIEが全然返ってこなくて、何回も書き込むことになってしまいました。
0605デフォルトの名無しさん
2014/07/04(金) 02:15:58.88ID:tywICoUd学校の授業かなんかで嫌々やらされてんのかな。
0606デフォルトの名無しさん
2014/07/04(金) 02:49:59.75ID:s7hbKy2Bな感じでいいのかな
0607デフォルトの名無しさん
2014/07/04(金) 10:14:41.98ID:VHgyx1X4テストで暗記して点数稼ぐタイプ。
言われたら何故そうやるのかを考え理解して、応用しないと。
0608デフォルトの名無しさん
2014/07/05(土) 00:42:52.65ID:p5JatFwWパーサーを作れと言ってるのと同じだからね。
例えばこんなのも想定する必要がある。
ABC def {
c="{";
}
$str = "
ABC def {
";
XYZ test {
c{}
}
こういうイレギュラーなことに対応しなくても良いのなら
簡単に作れるけどね。
あ、もしかしたら 「そのデータ形式 パーサー perl」 で検索すれば
欲しいものが見つかるかもよ。
0609デフォルトの名無しさん
2014/07/05(土) 01:17:17.13ID:+HA1XJwR文法定義がBNFみたいなので明確に与えられていて、
部分式呼出し等の再帰構造を表現する機能が使えれば、
面倒くさいのは間違いないけどそこまででもない。
0610デフォルトの名無しさん
2014/07/05(土) 13:24:09.21ID:p5JatFwW質問者さんから見れば超難しいで正解だろう。>>609さんから見れば そうでもない で正解だろう。
こういうレスを付けるようじゃ合格点はやれないな。
0611デフォルトの名無しさん
2014/07/06(日) 12:23:27.02ID:4c9hY2mY毎回これ書くの辛いので
ただのスペースをこれに読み替えてくれるオプションほしい
0612デフォルトの名無しさん
2014/07/06(日) 12:33:44.78ID:0QsWr+IB正規表現でそう言う変換すればいいんじゃね?
0613デフォルトの名無しさん
2014/07/06(日) 12:36:49.04ID:GKoC5bbZ0614デフォルトの名無しさん
2014/07/06(日) 12:46:48.43ID:4c9hY2mY今までそうしてたけど
やっぱりパターンに変数入れるのはイヤ
0615デフォルトの名無しさん
2014/07/06(日) 12:54:13.91ID:0QsWr+IB> やっぱりパターンに変数入れるのはイヤ
意味がわからんが、とりあえず正規表現処理ルーチン書き換えればいいんじゃね?
0616デフォルトの名無しさん
2014/07/06(日) 15:51:05.60ID:cxd6frI30617デフォルトの名無しさん
2014/07/06(日) 16:23:24.16ID:JKxWpx0K0618デフォルトの名無しさん
2014/07/06(日) 16:39:09.48ID:Z97b2TESお前そういう言い方したら、
英米人からしたら俺ら「頭の悪いCJK文字圏の連中」のせいで非ASCIIのUnicodeだとか面倒なうんたら……
って言われるのをお前自ら是認することを意味するぞ。
0619デフォルトの名無しさん
2014/07/06(日) 16:58:39.74ID:q4sERBNy詳しくは詳説 正規表現。
ただ、あまりおすすめしない・・。[ ] が [\s+] になるかも試練。
0620デフォルトの名無しさん
2014/07/06(日) 17:26:39.53ID:JKxWpx0K「頭の悪いフランス人」がいるんだわ
0621デフォルトの名無しさん
2014/07/06(日) 19:19:27.38ID:FK685k7D0622デフォルトの名無しさん
2014/07/06(日) 19:45:51.52ID:4Al3+AY70623デフォルトの名無しさん
2014/07/06(日) 21:09:46.04ID:JKxWpx0K逆は片手で余裕だが
0624デフォルトの名無しさん
2014/07/06(日) 21:11:46.11ID:JKZH1xqwそれ括弧つけた意味ないw
0625デフォルトの名無しさん
2014/07/06(日) 21:15:12.39ID:JKxWpx0K0626デフォルトの名無しさん
2014/07/06(日) 23:16:11.70ID:ZNTkqHdO@command tag1.cmd1, tag2.cmd2, tag3.cmd3
こんな感じで、行頭に@command[SP]という文字列が存在する行で、
その後は 文字列.文字列,[SP]が繰り返されるようなテキストがあるとき、
(最後は,[SP]は無し)
. と ,に囲まれた文字列をマッチさせたいのだが、どう指定してやればいいんだろう
(上記例だと、cmd1 cmd2 cmd3をマッチさせたい)
とりあえず、肯定先読みで (?<=^@command\s).+ としてやれば、
@command以後を取得することが出来ることまでは分かったんだが…
0627デフォルトの名無しさん
2014/07/07(月) 01:46:23.33ID:K2ZAF5Gtので\Kの保持を使うとこう書ける
/(?<=^)@command +\w+\.\K\w+/k
/(?<=^)@command +(?:\w+\.\w+, +){1}\w+\.\K\w+/k
/(?<=^)@command +(?:\w+\.\w+, +){2}\w+\.\K\w+/k
/(?<=^)@command +(?:\w+\.\w+, +){3}\w+\.\K\w+/k
/(?<=^)@command +(?:\w+\.\w+, +){4}\w+\.\K\w+/k
個数分だけ定義を繰り返すのがみっともないなぁ…
/^@command〜/kで始めると\Kが効かないっぽかったのでそこだけ戻り読み
0628デフォルトの名無しさん
2014/07/07(月) 06:07:55.96ID:K2ZAF5Gt/(^@command|\G,) +\w+\.\K\w+/k
0629デフォルトの名無しさん
2014/07/07(月) 07:19:55.86ID:dSawaSg/あんたの専ブラは類似ID強調機能でもあんのけ?
0630デフォルトの名無しさん
2014/07/07(月) 22:41:07.42ID:SrAB4sokおお、ありがとうございます。助かった…
ちなみにライブラリの都合なのか、サクラエディタ1.6.6では上手く検索してくれないみたいだ
最新版にしたら動いたわ。
\Kの使い方は分かるけど\Gがよく分からないので勉強しないとな…
0631デフォルトの名無しさん
2014/07/07(月) 23:08:35.01ID:TLdjin8KV2Cなんじゃね
0632625
2014/07/08(火) 00:03:42.93ID:A7a/SfRX0633デフォルトの名無しさん
2014/07/08(火) 06:44:09.60ID:qGOxpzR8●Regular Expressionの使用環境
サクラエディタ 2.0.5.0(bregonig.dll 3.02)
●検索か置換か?
置換
●説明
Linuxでディレクトリのみのls -lコマンド結果からパーミッション、オーナー、グループ、ディレクトリ名(/から始まるフルパス表記)以外を置換して除去したい
ハードリンク数やサイズや更新日時が除去できれば良いと思うのですが、
ls -lコマンド結果に例外的なものがあるのをご存知の方がいらっしゃれば、
それに対応頂きたいです。
よろしくお願いします。
0634デフォルトの名無しさん
2014/07/08(火) 07:11:58.82ID:2XtqBTEe「ls」が「ls --time-style="+%Y-%m-%d_%H:%M:%S" --color=auto」のエイリアスになってたりとか、
lsの例外は色々あるというかありうる例外の数が有限ではないから全対応とかは無理がある。
素のlsに限定してもロケールで振り回されることになるし、条件を絞って妥協した方がいいと思う。
・桁揃えが破綻してなければ矩形選択してバックスペースで済ます、正規表現は使わない
・桁数や書式を決め打ちした正規表現で済ます
・実行するコマンドを変えてそっちで必要な情報だけを出す
正規表現でやるにしても、対応したい書式をざっと出して、それに対する正規表現を考えた方が良い。
というわけで対象データと希望する結果は省略しないでくださいな。
0635デフォルトの名無しさん
2014/07/08(火) 07:34:14.05ID:A7a/SfRX0636デフォルトの名無しさん
2014/07/08(火) 15:08:27.37ID:o31OpX8o(LANG=C; /bin/ls -l | awk 'match($0, /^d.+/) {print $1 "\t" $3 "\t" $4 "\t" $9 }' )
0637デフォルトの名無しさん
2014/07/08(火) 16:40:14.27ID:hxSm+BQNfindで書いた方が楽じゃない?
$ find . -maxdepth 1 -mindepth 1 -type d -printf "%m %u %g $(pwd)/%f\n"
755 root root /usr/games
755 root root /usr/src
755 root root /usr/include
755 root root /usr/bin
755 root root /usr/sbin
755 root root /usr/lib
2775 root staff /usr/local
755 root root /usr/share
0638デフォルトの名無しさん
2014/07/12(土) 17:53:04.61ID:xHcjdJl5サクラエディタ 2.1.1.3(bregonig.dll 3.05)
●検索か置換か?
検索(エディタの正規表現キーワード指定)
●説明
>>626の質問をした者です。
>>628で答えを貰ってから少しずつ練習をしているのですが、
サクラエディタの正規表現キーワード指定(タイプ別設定)の設定が上手くできないため教えてください。
@cmd あいうえお_かきくけこ_さしすせそ
上記のような文字列(行頭が@cmd[SP]である行で、その後に任意の文字列が続く)のうち、
文字列に含まれるアンダースコアを全てマッチさせたいと考えています。
そこで、次のような正規表現を考えました。
/(^@cmd|\G(\w|\[|\]))[^_]*\K[^_]*_/k
\Gの直後のカッコに [ ] を入れているのは、文字列にカッコ記号を含む可能性があるためです
この正規表現で通常の画面から検索をすると(/ /kを消して)、@cmdから始まる行のアンダースコア全てがハイライトされるのですが、
正規表現キーワード指定画面にて指定しても指定箇所に色が付きません。(カラー設定は行っています)
指定した正規表現に間違いがあるのでしょうか。
これ以外のキーワード指定は削除しているため、キーワード指定同士の競合はありません
0639デフォルトの名無しさん
2014/07/12(土) 20:15:20.44ID:ECDEtuh/検索でマッチしてる時点で成功してるんだからアプリの使い方の問題で、
このスレで聞くにはスレチな問題だってわかると思うんだが…エディタのスレで聞いてこい。
あと表現は「/(^@cmd |\G)[^_]*\K_/k」だ。でないと「@cmd a_@b_c」がマッチしない。
全てのアンダーバー文字の間にありうるのはアンダーバー以外すべての文字だ。
0640デフォルトの名無しさん
2014/07/12(土) 22:12:53.17ID:iiryn2e2ABBBBB を A\GB で着色出来るか試せば分かる。
こういうシンプル化した実験すれば質問する前に原因の絞りこみくらいは出来るよ。
0641デフォルトの名無しさん
2014/07/12(土) 22:38:35.99ID:ECDEtuh/あえて書かなかったけど、2.1.0.0で普通に着色できるんだよ。
設定ミスか、バージョン固有のバグだから多分スレチ……
0642デフォルトの名無しさん
2014/07/12(土) 22:41:27.67ID:4X8+jU3h確かに\Gの後の指定がおかしいですね。ありがとうございます。
教えていただいた表現では、何故か行頭が@cmdでない行のアンダースコアも反応してしまうようです。
>>640
>>628の時点で、\Gと\Kが使えることは確認していました。
すみません、自己解決しました。
キーワードの指定で、マッチした文字を太字にする、という設定をしていたのですが
MSゴシックではアンダースコアの標準と太字の表示が全く同じのため
動作していたことに気付いていませんでした
0643デフォルトの名無しさん
2014/07/12(土) 23:19:45.83ID:iiryn2e2最初から出来てたオチか。>>640は的外れな回答だったね、ごめん。
>\G
0644デフォルトの名無しさん
2014/07/12(土) 23:43:55.99ID:iiryn2e2\G には ^ と同じ意味もあります。 ^ としての働きが余計な場合は \G(?!^) を使って下さい。
>>628以降これを見落としてます。
> [^_]
サクラエディタではこれでも問題無いんですがこれは本来、改行にもマッチする正規表現です。
他の環境で使うときは [^_\r\n] と書かなければならないのでご注意下さい。
サクラエディタは複数行に渡る検索が出来ない仕様のようですね。
これは正規表現ライブラリの仕様ではなくサクラエディタの仕様です。
0645デフォルトの名無しさん
2014/07/13(日) 01:02:33.01ID:XldxjMt3なるほど。指摘助かった
0646デフォルトの名無しさん
2014/07/13(日) 11:20:30.59ID:BpgWxek/> 他の環境で使うときは [^_\r\n] と書かなければならないのでご注意下さい。
否定文字クラスでは1文字の否定はできても2文字以上の否定はできないから、
それだと単独のCR改行やLF改行にはマッチしなくても、
CR+LF改行にマッチしてしまうのでは?
0647デフォルトの名無しさん
2014/07/14(月) 01:37:34.34ID:upDk1kff0648デフォルトの名無しさん
2014/07/14(月) 07:58:27.57ID:JumStXQP●Regular Expressionの使用環境
LiName リネームソフト
●検索か置換か?
置換 フォルダ構成の作成
●説明
バラバラになったファイルを、フォルダごとに分けたいです
そのためにLiNameを使いたいが、正規表現が分からないです
●対象データ
詰め合わせフォルダ
└(旅行) [ドイツ] あああ 画01枚.jpg
(旅行) [ドイツ] あああ 画02枚.jpg
(旅行) [ドイツ] あああ 画03枚.jpg
(旅行) [ドイツ] いいい 画01枚.jpg
(旅行) [ドイツ] いいい 画02枚.jpg
(旅行) [アメリカ] ううう 画01枚.jpg
(旅行) [アメリカ] ううう 画02枚.jpg
(旅行) [ロシア] えええ 画01枚.jpg
(旅行) [ロシア] えええ 画02枚.jpg
すいません、長いので次に書かせていただきます。
0649デフォルトの名無しさん
2014/07/14(月) 07:59:10.74ID:JumStXQP●希望する結果
あああ
└(旅行) [ドイツ] あああ 画01枚.jpg
(旅行) [ドイツ] あああ 画02枚.jpg
(旅行) [ドイツ] あああ 画03枚.jpg
いいい
└(旅行) [ドイツ] いいい 画01枚.jpg
(旅行) [ドイツ] いいい 画02枚.jpg
ううう
└(旅行) [アメリカ] ううう 画01枚.jpg
(旅行) [アメリカ] ううう 画02枚.jpg
えええ
└(旅行) [ロシア] えええ 画01枚.jpg
(旅行) [ロシア] えええ 画02枚.jpg
国名部分や、あああやいいいの部分に数字が入っていても対応させたいです。
「画」は固定でこの一文字ですが、画像の枚数は三桁になることもあります。
四桁はありません。
間は全て半角スペースで分けてます。
他の方に、
Tドライブ直下に詰め合わせフォルダがあると仮定
検索→^(\d+)\tT:\\(詰め合わせフォルダ)\\(.*\])(\s*)(\D+)(\d+.*)$
置換→\1\tT:\\\2\\\5\\\3\4\5\6
まで教えて頂けましたが、これだとフォルダ名前に数字が入っていた場合対応出来ませんでした。
分かる方がいましたら、お力になって下さい
お願いしますm(_ _)m
0650デフォルトの名無しさん
2014/07/14(月) 08:31:56.84ID:W4rrM4Ho0651デフォルトの名無しさん
2014/07/14(月) 09:26:36.72ID:o4xberdB>>649 その質問じゃ意味がまず通じない(LiNameの挙動を普通しらない)
まずは自分で少しでも理解を
0652デフォルトの名無しさん
2014/07/14(月) 20:20:49.55ID:YJUBlObZたいてい先読みとかは使えるのに……
0653デフォルトの名無しさん
2014/07/14(月) 20:25:01.53ID:ANmjrFBE君が不能である理由を問いかけられても……
0654デフォルトの名無しさん
2014/07/14(月) 20:36:16.16ID:YJUBlObZ0655デフォルトの名無しさん
2014/07/14(月) 20:49:26.56ID:CC89DLAUwindowsアプリで…って言われても広すぎて意味わかんないだろ?
あなたにとってのAndroidアプリ(またはそれを実装する特定の言語)は一つかも知れないが、他の人は知らない。
0656デフォルトの名無しさん
2014/07/14(月) 21:57:57.64ID:TLjb6OBbここで◯◯用論文だけ抜き出すにはどうすればいいのでしょうか?
0657デフォルトの名無しさん
2014/07/14(月) 22:06:31.70ID:CC89DLAU>>2を読むと抜き出せる。
0658656
2014/07/14(月) 22:25:33.18ID:TLjb6OBb●Regular Expressionの使用環境
Ruby2.0
●検索か置換か?
置換
●説明
特定の文字列の箇所を抜き出したい
●対象データ
20140506:◯◯用論文: 山田太郎
●希望する結果
◯◯用論文
0659デフォルトの名無しさん
2014/07/15(火) 03:20:27.62ID:5fft4dh20660デフォルトの名無しさん
2014/07/15(火) 12:56:03.78ID:KtjRxeCE0661デフォルトの名無しさん
2014/07/15(火) 14:51:35.49ID:8+z+AyjRおまえらってほんと使えないよな。
0662デフォルトの名無しさん
2014/07/15(火) 14:54:49.33ID:omZ55U1R0663デフォルトの名無しさん
2014/07/15(火) 14:55:11.54ID:bg9jP/mHほどほどの質問カモン!
0664デフォルトの名無しさん
2014/07/15(火) 16:18:46.83ID:yzRSnQGeだれが間違ったって?レス番挙げてみろや
0665デフォルトの名無しさん
2014/07/16(水) 00:07:34.78ID:E2yy15pfお前間違い教えてやるからレス番教えろや?
0666628,639,645
2014/07/16(水) 07:08:57.04ID:+nFw7X3r俺。
0667デフォルトの名無しさん
2014/07/17(木) 16:50:30.80ID:nZ3lKfpt$1とか$2で()内に指定された値が入るときに$1と$2の間に数字の0を入れたい場合どうなるの?
$1って指定が$10って扱いになっちゃって困ってるんだけど
0668デフォルトの名無しさん
2014/07/17(木) 16:59:16.32ID:j/HApCF10669デフォルトの名無しさん
2014/07/17(木) 17:03:29.15ID:rnj30R2Jjava $1\0$2
0670デフォルトの名無しさん
2014/07/17(木) 17:20:36.78ID:nZ3lKfptふむふむなるほどなるほど・・・正規表現よくしらなくて$1\0$2とか$1\\\0$2ってかいたりしてた
>>669
あーなるほど、PHPの方でやったらできました。ありがとうございます!
(開発環境書き忘れたけどサクラエディタです)
0671デフォルトの名無しさん
2014/07/17(木) 21:05:53.14ID:f9EwQ7K8後方参照になってなくて、マッチしないなぁ、とか悩んじゃったり。
でも大抵の間違い、固定パターンから始めて、少しずつ置き換えていけばわかるよね。
コマンドラインに書ける言語だと楽。
0672デフォルトの名無しさん
2014/07/23(水) 11:13:31.56ID:M9izZ0mN期間; 4-7月
クリック数 27
注文数 0
紹介料 0
せいきなんとか
http://akiba.geocities.jp/hp20140401/
こんななのにアフィアフィ叫んでたらアホやで。
0673デフォルトの名無しさん
2014/07/23(水) 15:00:58.05ID:aSrmdrCPこんなだからこそちまちまリンク張ってSEOしてんだろ?
0674デフォルトの名無しさん
2014/07/23(水) 15:18:48.31ID:M9izZ0mN0675デフォルトの名無しさん
2014/07/23(水) 17:46:55.72ID:aSrmdrCPアクセスしてほしいならそのまんまだし…何ムキになってんの?
0676デフォルトの名無しさん
2014/07/23(水) 19:07:26.67ID:zhY/zc/60677デフォルトの名無しさん
2014/07/23(水) 23:44:32.91ID:M9izZ0mN0678デフォルトの名無しさん
2014/07/27(日) 12:41:25.83ID:sP54HtrP0679デフォルトの名無しさん
2014/07/27(日) 13:43:15.93ID:U7uDR9xp0680デフォルトの名無しさん
2014/08/06(水) 13:04:28.57ID:5rV4KAaThttp://utsu.jp/anxiety/gad/
0681デフォルトの名無しさん
2014/08/06(水) 21:05:20.27ID:s0fVHAbH>普通のブラウザ
そういえばChromeやOperaでも範囲選択して右クリで「〜に移動」とか出来たような
>>672>>680
>>487
うぜぇって言われて傷ついたのはわかるけど、こんな時間差でそんなレスすんなよ
0682デフォルトの名無しさん
2014/08/06(水) 21:45:31.84ID:5rV4KAaT0683デフォルトの名無しさん
2014/08/06(水) 21:53:15.56ID:YpJQFAtU0684デフォルトの名無しさん
2014/08/06(水) 22:06:32.32ID:Qtte9F5b0685デフォルトの名無しさん
2014/08/06(水) 22:21:58.72ID:rs4KYGIT0686デフォルトの名無しさん
2014/08/06(水) 22:32:57.74ID:10+w8FAZ0687デフォルトの名無しさん
2014/08/07(木) 16:54:10.40ID:QofFH+cu0688デフォルトの名無しさん
2014/08/07(木) 17:09:36.61ID:hiAEKHpd0689デフォルトの名無しさん
2014/08/07(木) 21:27:54.94ID:K4PjeMiT正規表現でのインクリメンタルサーチができるので
正規表現調べるのに捗る
0690デフォルトの名無しさん
2014/08/07(木) 21:50:08.22ID:c5KJ5eBj0691デフォルトの名無しさん
2014/08/07(木) 23:35:15.60ID:9SCZBoivFirefox 31.0
●検索か置換か?
置換
●説明
対象データの3行のいづれの場合もlv*********のみに置き換えたいんですが
次の正規表現以外に上手い?表現はありますか?
/(.*\/)(lv\d+).*/g, "$2"
●対象データ
http://live.nicovideo.jp/watch/lv123456789
http://live.nicovideo.jp/watch/lv123456789?ref=alert_alert
http://live.nicovideo.jp/watch/lv123456789?ref=notify&zroute=subscribe
●希望する結果
lv123456789
lv123456789
lv123456789
0692デフォルトの名無しさん
2014/08/08(金) 02:37:34.74ID:pWDxpd5M0693デフォルトの名無しさん
2014/08/08(金) 03:53:29.17ID:ei8M8gQLMigemo使えるの?
0694デフォルトの名無しさん
2014/08/08(金) 11:12:55.86ID:+myZz9Szあるよぉ
0695デフォルトの名無しさん
2014/08/11(月) 15:51:17.51ID:oaxRFEAAと
[ABC]+
はどういう違いがあるん?
0696デフォルトの名無しさん
2014/08/11(月) 16:01:57.41ID:4B0tyuoY上は後方参照できる、複数の文字などの正規表現を入れられる、とかかな。
0697デフォルトの名無しさん
2014/08/12(火) 02:04:20.58ID:IJu8kQDR0698デフォルトの名無しさん
2014/08/12(火) 09:02:38.16ID:pMraHo9U0699デフォルトの名無しさん
2014/08/12(火) 09:04:57.29ID:eTdRV9DH(A|B|C)+
([ABC])+
こうしたら差異はなくなるのか?
0700デフォルトの名無しさん
2014/08/12(火) 13:13:13.98ID:pMraHo9U0701デフォルトの名無しさん
2014/08/12(火) 16:25:32.33ID:qLySQ1Pz0702デフォルトの名無しさん
2014/08/12(火) 16:44:01.40ID:FXriONsf0703デフォルトの名無しさん
2014/08/14(木) 16:22:21.93ID:NjYId10G文字クラス内において全ての文字を示す物はあるのでしょうか?(.)のような物です
[.\n]
これでは、. と改行になってしまいます
ご教授お願いします
0704デフォルトの名無しさん
2014/08/14(木) 16:37:07.08ID:e5fw4KBCないんじゃない。(.|\n) では困る?
0705デフォルトの名無しさん
2014/08/14(木) 16:50:48.91ID:NjYId10Gそうですか・・・
改行 文字列 改行 文字列 改行 を繰り返すかもしれないパターンを含む時に不便でして
…….*\n?.*\n?〜〜と連続して書くのもなんだなと思いまして
……[.\n]* と書けたらなぁと・・・
0706デフォルトの名無しさん
2014/08/14(木) 17:15:51.99ID:5D9fNqQM0707デフォルトの名無しさん
2014/08/14(木) 17:18:39.93ID:2C2dxDw90708デフォルトの名無しさん
2014/08/14(木) 17:40:46.41ID:vio0lUwM0709デフォルトの名無しさん
2014/08/14(木) 18:05:41.06ID:TBwIoPuz0710デフォルトの名無しさん
2014/08/14(木) 18:18:02.97ID:NjYId10G[\w\W\n]*
これでカバーできるのですか。ありがとうございます
>>708
> 対象テキストをフィルタリングしていいなら、事前に'\t'を' 'に変換してから"[^\t]"とか。
なるほど。ありがとうございます
[^\v]* でもカバーできるのでしょうか
垂直タブというのは使わないですよね
[\w\W\n]*
これが正規表現的に正攻法みたいですね
0711デフォルトの名無しさん
2014/08/14(木) 20:09:13.99ID:NjYId10Gいろいろやってみて、>>707さんが明解していたのですね
大変勉強になりました
皆さんありがとうございました
0712デフォルトの名無しさん
2014/08/15(金) 00:20:24.26ID:3lWvOZNd0713デフォルトの名無しさん
2014/08/15(金) 15:03:13.55ID:ZUc984rOabcxY
abcXy
abcXY
に一致する表現を教えてください。
0714デフォルトの名無しさん
2014/08/15(金) 15:09:19.55ID:FVD0peWq0715デフォルトの名無しさん
2014/08/15(金) 15:14:53.28ID:+tAbOtB7お前ら虫けら程度にしか思われてないぞ
0716デフォルトの名無しさん
2014/08/15(金) 15:18:37.79ID:ZUc984rOありがとございました。もし可能なら、
abcxy
abcXY
にだけマッチする表現もお願いします。グループ化というのを使うのか
なと思うのですが、わかりませんでした。
0717デフォルトの名無しさん
2014/08/15(金) 16:13:49.95ID:dVghf27+abc(xy|XY)
0718デフォルトの名無しさん
2014/08/15(金) 16:19:25.31ID:WeaiyZxF0719デフォルトの名無しさん
2014/08/15(金) 16:24:08.21ID:5nkgE4sAabc(?=xy)|abc(?=XY)
0720デフォルトの名無しさん
2014/08/15(金) 19:38:45.41ID:ZUc984rO有難うございました。
0721デフォルトの名無しさん
2014/08/16(土) 00:43:23.92ID:GXsSAeqd0722デフォルトの名無しさん
2014/08/16(土) 06:46:04.79ID:/OmTXIMR0723デフォルトの名無しさん
2014/08/16(土) 10:10:10.02ID:6odfK+hqJavaScript
●検索か置換か?
置換
●説明
例えばある文字列の中の「体」を「體」へ、「旧」を「舊」へ…、というように変換したいときに全て書き連ねるのではなく正規表現で簡潔に表現する方法はないでしょうか
0724デフォルトの名無しさん
2014/08/16(土) 10:35:51.68ID:Tzb9+P64str=str.replace(/./g,function(c){
var t="体旧";
var r="體舊";
return r.charAt(t.indexOf(c))||c;
});
0725デフォルトの名無しさん
2014/08/16(土) 10:39:54.46ID:FNEoWwnNそもそも異体字は一つじゃないので目的の変換は自分にしか判らんぞ。
0726デフォルトの名無しさん
2014/08/16(土) 11:45:22.38ID:6odfK+hqできました! ありがとうございます。
こういうのは正規表現じゃなくてプログラムの領域なんですね。
>>725
もちろん正確ではないですが目安になればと思いまして
0727デフォルトの名無しさん
2014/08/16(土) 15:11:48.16ID:pWi/58vS確かに正規表現より、プログラムで実装したほうが有効そうな気がする
0728デフォルトの名無しさん
2014/08/16(土) 15:15:06.80ID:sh3Xj8IA0729デフォルトの名無しさん
2014/08/16(土) 15:30:22.96ID:HLPR753i0730デフォルトの名無しさん
2014/08/16(土) 15:34:39.41ID:HaTedOVs0731デフォルトの名無しさん
2014/08/19(火) 10:10:03.68ID:v8Oh1oObxxx=
yyy=
zzz=
[head]
aaa=
bbb=
ccc=
を
[title]
xxx=title_xxx
yyy=title_yyy
zzz=title_zzz
[head]
aaa=head_aaa
bbb=head_bbb
ccc=head_ccc
に変換したいのですが、正規表現「(?s:(?<=^\[\w+\].*)(\w+)=)」置換文字「$2=$1_$2」でうまく行きません。
戻り読みは.*が使えないのと、戻り読みのバックトラックができないことに気が付きました…
なにかいい方法はないでしょうか。
正規表現じゃ無理ですかね…
0732デフォルトの名無しさん
2014/08/19(火) 14:16:40.72ID:VTJ0efpU(?s:(\[[\w]+\]).*([\w]+)=.*([\w]+)=.*([\w]+)=)
0733デフォルトの名無しさん
2014/08/19(火) 14:21:49.46ID:VxtC/3Yqじゃなくて
.{1,99}
とかにすればいける
0734デフォルトの名無しさん
2014/08/19(火) 14:25:40.60ID:VTJ0efpU(?s:\[([\w]+)\].*([\w]+)=.*([\w]+)=.*([\w]+)=)
0735デフォルトの名無しさん
2014/08/19(火) 16:38:26.35ID:v8Oh1oObなるほど、ありがとうございます。
キーが3つ固定ではない場合はどんな感じになるでしょうか…
0736デフォルトの名無しさん
2014/08/19(火) 17:01:38.43ID:VTJ0efpU(?s:\[([\w]+)\].*([\w]+)=.*([\w]+)=.*([\w]+)=.*\[([\w]+)\].*([\w]+)=.*([\w]+)=.*([\w]+)=)
[$1]\n$2=$1_$2\n$3=$1_$3\n$4=$1_$4\n\n[$5]\n$6=$5_$6\n$7=$5_$7\n$8=$5_$8\n
試してないけど…
この場合、.* ではなく . か \n で済むんだけどね
0737デフォルトの名無しさん
2014/08/21(木) 20:40:07.71ID:drNRo/JU0738デフォルトの名無しさん
2014/08/21(木) 21:10:26.14ID:rUYfHbxl0739デフォルトの名無しさん
2014/08/21(木) 22:12:02.55ID:sMWwEbRs0740デフォルトの名無しさん
2014/08/21(木) 23:00:37.22ID:dDCf4AuG0741デフォルトの名無しさん
2014/08/22(金) 02:30:50.50ID:M3NxvgHB/http:\/\/live\.nicovideo\.jp\/watch\/(lv\d+)\S*/g
0742デフォルトの名無しさん
2014/08/22(金) 02:49:05.60ID:kxOQVudb0743デフォルトの名無しさん
2014/08/22(金) 04:02:44.05ID:bGeNJIvA0744デフォルトの名無しさん
2014/08/22(金) 08:36:06.57ID:Q7ExT4u4日本語フォントならwwwみたいなことにならないしw
0745デフォルトの名無しさん
2014/08/22(金) 14:18:34.73ID:bGeNJIvAどういうこと?
0746デフォルトの名無しさん
2014/08/22(金) 14:28:22.65ID:SMsjHa6/0747デフォルトの名無しさん
2014/08/22(金) 14:43:53.72ID:IPDXFe64.*(lv[\d]{9}).* "$1"
0748デフォルトの名無しさん
2014/08/22(金) 16:18:18.82ID:gD3ohATk「Flexible Renamer v8.4」というのを使ってます
検索は (例)「\d-\d」 でいいんですが、置換形式が分りません
0749デフォルトの名無しさん
2014/08/22(金) 16:23:42.11ID:IPDXFe64検索
(\d)-(\d)
置換
$1$2
0750デフォルトの名無しさん
2014/08/22(金) 16:28:42.52ID:etaQV7Srファイル名痴漢指定:\1\2
0751デフォルトの名無しさん
2014/08/22(金) 16:29:16.66ID:h4d7Hbqi0752デフォルトの名無しさん
2014/08/22(金) 16:33:28.99ID:DYgik7Qx0753デフォルトの名無しさん
2014/08/22(金) 16:53:33.99ID:kxOQVudbなるべく入れないようにしてる。平和ボケな日本人はなかなか警戒しないが。
0754デフォルトの名無しさん
2014/08/22(金) 17:37:58.83ID:aJ1/cCwf0755デフォルトの名無しさん
2014/08/22(金) 17:41:54.02ID:U4ficUnI0756デフォルトの名無しさん
2014/08/22(金) 17:47:53.30ID:gJAlPaQ5おまえが桜チャンネルぼけ
0757デフォルトの名無しさん
2014/08/22(金) 19:03:19.51ID:gD3ohATkお二方ともありがとうございました
無事変更できました
痴漢に吹いてしまったwwwwwww(わざとかなこの人・・・)
0758デフォルトの名無しさん
2014/08/22(金) 21:31:33.30ID:UpTLQes7秀丸ver8.22です。
,(\d\d\d), → ,0\1,
,(\d\d), → ,00\1,
,(\d), → ,000\1,
マクロのコードがシンプルになれば・・・
0759デフォルトの名無しさん
2014/08/22(金) 21:51:38.81ID:kxOQVudb0760デフォルトの名無しさん
2014/08/22(金) 22:29:24.84ID:5QaimfAK0761デフォルトの名無しさん
2014/08/22(金) 23:37:33.02ID:IPDXFe64(\d{3}).*(\d{2}).*(\d{1})
\1\2\3
0762デフォルトの名無しさん
2014/08/23(土) 00:08:09.60ID:AEqqpBGU0763デフォルトの名無しさん
2014/08/23(土) 00:10:12.36ID:6csT3QKU0764デフォルトの名無しさん
2014/08/23(土) 00:39:25.15ID:DFqma1HTなにが不味いっけコレ
>>758
1〜N桁のを2回に減らすことはできるけど、1回に減らすのは…
0765デフォルトの名無しさん
2014/08/23(土) 02:41:06.88ID:qH2WQ946質問ちゃんと読めよ
0766デフォルトの名無しさん
2014/08/23(土) 11:30:40.43ID:C8qqacvC"func A_arg1 A_arg2"
このような文字列があるとします。
この関数funcが受け取る引数は必ず A_ から始まります
/^func ((?:A_[A-z0-9]+ )+)/
このようにしてしまうとA_arg2のあとにスペースが無いため
"A_arg1 "だけしかキャプチャすることができません
"A_arg1 A_arg2"というようにキャプチャするにはどうすればいいのでしょうか
0767デフォルトの名無しさん
2014/08/23(土) 11:34:35.59ID:C8qqacvCすみません
追加情報です
"func A_arg1 A_arg2 # this is a comment"
このような引数のあとに空白や文字が続くことも有ります
0768デフォルトの名無しさん
2014/08/23(土) 12:13:34.66ID:C8qqacvCこれでいけました
お手数かけました
0769デフォルトの名無しさん
2014/08/23(土) 13:22:23.90ID:fRu0y4Of0770デフォルトの名無しさん
2014/08/23(土) 14:45:51.77ID:xQzzlftZ/^func(?:\b(?:A_[A-z0-9]+)\b)+/
0771デフォルトの名無しさん
2014/08/23(土) 16:37:38.32ID:xQzzlftZ(?<=func )(?:(A_[A-z0-9]+) ?)+
0772758
2014/08/24(日) 18:09:17.16ID:/K2tiopt2回に分けてやる方法が分かったよ。参考情報ありがと。
1回目
,(\d{1,3}), → ,目印000\1目印,
2回目
,目印0*(\d{4})目印, → ,\1,
0773デフォルトの名無しさん
2014/08/24(日) 18:32:36.28ID:7kdxEP/Hマクロのほうがシンプルで読みやすいものになるだろうに。
0774デフォルトの名無しさん
2014/08/25(月) 00:46:27.47ID:xXZcDf8bテキストエディタ上で桁揃えするときに>>772みたいな置換するのは定番だろ。
こんなん使い捨ての手打ち表現としてすら複雑とは言わないと思うんだが…
0775デフォルトの名無しさん
2014/08/25(月) 01:05:20.21ID:MGBbV6rCプログラミング出来る人ならコマンドラインからprintfで。
0776デフォルトの名無しさん
2014/08/25(月) 01:20:36.22ID:DzYgYr7E0777デフォルトの名無しさん
2014/08/25(月) 01:55:29.12ID:xXZcDf8b表計算ソフトに取り込むのに正規表現で書式直したりする場合もあるんだが…
つかこの程度の正規表現を複雑とか面倒とか思う奴がなんでこのスレにいるの?
>>776
printfが便利すぎてstreamに移行できない…ってのは兎も角、
そういうこと考えてくとJavaScriptのreplaceみたいなの使いたくなる。
0778デフォルトの名無しさん
2014/08/25(月) 02:43:00.49ID:gEXAbfJDちょっと頑張れば出来るよ
0779デフォルトの名無しさん
2014/08/25(月) 02:47:09.07ID:uDmHN95Mなぜわざわざ関数にせにゃあならんのか
0780デフォルトの名無しさん
2014/08/25(月) 02:50:20.81ID:MGBbV6rC馬鹿とハサミは使いよう。
0781デフォルトの名無しさん
2014/08/25(月) 05:45:42.21ID:NQvVGwkwお前がプログラマでないことはよくわかった。
0782デフォルトの名無しさん
2014/08/25(月) 07:04:13.88ID:f/anSDMwまともなエディタならできるよ
0783デフォルトの名無しさん
2014/08/25(月) 14:59:40.72ID:LYmloza8【目的】 文字列内の ab を a にする ただしabの後ろがcの場合を除く
例 ab123 → a123 、 abcde → abcde
という条件を正規表現で記述するにはどのように書けばよいでしょうか?
よろしくおねがいします
0784デフォルトの名無しさん
2014/08/25(月) 15:06:33.85ID:mxntKFMv0785デフォルトの名無しさん
2014/08/25(月) 15:31:58.77ID:LYmloza8echo preg_replace( "/(?<=a)b(?!c)/", "", "123abz123" ); // 123az123
echo preg_replace( "/(?<=a)b(?!c)/", "", "123abc123" ); // 123abc123
動作確認しました
ありがとうございました
0786デフォルトの名無しさん
2014/08/25(月) 15:52:57.04ID:qKDWfdSu(?!abc)ab
と書いてしまう…
0788デフォルトの名無しさん
2014/08/25(月) 15:55:53.50ID:l0tzbBCe0789デフォルトの名無しさん
2014/08/25(月) 15:58:33.97ID:l0tzbBCe柔軟性の高い正規表現を書こうとすると,避けて通れないのが先読み・後読みです.
いままではとりあえず的な理解をしていたのですが,それだと説明できない正規表現に遭遇したので,説明できるまで理解を深めてみました.
とりあえず的な理解
正規表現を使って間もない人が先読み・後読みを理解するための説明です.
肯定的先読み(?=pattern)
次の正規表現では直後にbarがあるfoo(barは含まない)に一致します.
foo(?=bar)
否定的先読み(?!pattern)
次の正規表現では直後にbarがないfoo(barは含まない)に一致します.
foo(?!bar)
肯定的後読み(?<=pattern)
次の正規表現では直前に barがあるfoo(barは含まない)に一致します.
(?<=bar)foo
否定的後読み(?<!pattern)
次の正規表現では直前にbarがないfoo(barは含まない)に一致します.
(?<!bar)foo
先読み・後読みはアンカー
上記程度の理解だと次の内容を説明できません.
abcで始まらない任意の文字列を抽出したい場合,/^(?!abc).*/のような正規表現を記述します.
http://d.hatena.ne.jp/a_bicky/20100530/1275195072
0790デフォルトの名無しさん
2014/08/25(月) 15:59:33.70ID:qKDWfdSu戻り読み
aをポイントにして、その後に続く文字にヒットする(ポイントしたaは含まない)
だから、bだけがヒットして、削除することによって目的が達成する
0791783
2014/08/25(月) 16:11:44.93ID:LYmloza8ありがとうございました
0792デフォルトの名無しさん
2014/08/25(月) 16:15:22.85ID:qKDWfdSu0793デフォルトの名無しさん
2014/08/25(月) 23:13:51.84ID:xXZcDf8b正規表現置換でただの番号指定参照ではない書式付き指定とか見たこと無いんだが具体例頼む。
0794デフォルトの名無しさん
2014/08/26(火) 00:01:04.56ID:AKSJinfO0795デフォルトの名無しさん
2014/08/26(火) 08:06:56.38ID:l0Y41UViいやだから知らないんだろ?だったら見た事あるわけないじゃないか。
なぜもっと素直に聞けないw
0796後読み撲滅委員会
2014/08/26(火) 11:08:23.62ID:WIt2FEUm後読み撲滅委員会が来ましたよ
後読みだとマッチ位置のアトを読むみたいな誤解を生むから嫌い
>>790の戻り読みの方がマッチ位置から前に戻るというのが明確で好き
0797デフォルトの名無しさん
2014/08/26(火) 22:02:42.14ID:mLMy21sd素直に「頼む」って書いてるのに答えられないのか……
番号指定参照の事と間違えてて引けなくなっちゃった?
>>796
後読みだと後方参照と似た印象受けるし、戻り読みの方が好き。
0798デフォルトの名無しさん
2014/08/26(火) 22:54:27.10ID:/YmoB5m1782のいう「まともなエディタ」が何かわかんないけど、
とりあえずEmacsで\,( )使って中でformatでも呼べばできるんじゃね。
必要ならstring-to-numberあたりもあわせて。
0799デフォルトの名無しさん
2014/08/26(火) 23:14:26.38ID:AKSJinfO0800デフォルトの名無しさん
2014/08/26(火) 23:41:15.75ID:jaIpu19W0801前方参照撲滅委員会
2014/08/26(火) 23:56:30.04ID:WIt2FEUm> 後読みだと後方参照と似た印象受けるし、戻り読みの方が好き。
2chだと後方参照しか見ない気がするけど、
BackreferencesをMSは前方参照と略しちゃったりしてるんだよね
どう機械翻訳したら前方参照になるのかと小一時間(ry
http://msdn.microsoft.com/en-us/library/ksz2azbh(v=vs.90).aspx
http://msdn.microsoft.com/ja-jp/library/ksz2azbh(v=vs.90).aspx
0802デフォルトの名無しさん
2014/08/27(水) 00:00:44.53ID:ca9UWwTQ0803デフォルトの名無しさん
2014/08/27(水) 01:08:17.24ID:LUqBHmJ8「前に進め」と「前(の位置)に戻れ」は両方「前」だけど逆の向き
移動体に対する前後と移動の経路に対する前後は同じじゃない
文字列も、文字列の「後ろ」に向かって検査位置が「前進」するし
けど普通なら「前方」と書いたら移動体に対する「前」で、
検査位置(オートマトン)の進行方向(文字列の後ろ)を指す…よなぁ…
>>798-799
それだと書式指定飛び越えて置換ハンドラ作ってる気もするが、
その辺のこと言ってたって事…かなぁ…?誤解を招く表現だな
0804デフォルトの名無しさん
2014/08/27(水) 01:13:24.89ID:bQc+U8zB0805デフォルトの名無しさん
2014/08/27(水) 14:55:26.81ID:Gkyyi0oWこれほんとそうだと思うわw
10年前、車の免許の卒検で「あの車の前に停まれ」っていうので前方だと思ったら手前だったらしく最後に怒られてイラッとしたわw
0806デフォルトの名無しさん
2014/08/27(水) 15:12:26.25ID:sYB8gGv2戻り読み=その文字列の後に続くかを示す
なんかやってることは、先読みではなく後ろ読みな感じで、戻り読みは続き読みな感じがする
0807デフォルトの名無しさん
2014/08/27(水) 15:19:54.26ID:/vEUt9tC0808デフォルトの名無しさん
2014/08/27(水) 18:19:00.03ID:Uo1g6O6rJust as "日本語でおk" conveys a request to comment in Japanese, ...
0809デフォルトの名無しさん
2014/08/27(水) 18:20:23.14ID:nJZA/d8qnot english it is.
0810デフォルトの名無しさん
2014/08/27(水) 18:20:26.00ID:WVBb8eJHEnglish === OK を意味する
0811デフォルトの名無しさん
2014/08/27(水) 18:23:12.87ID:nJZA/d8q0812デフォルトの名無しさん
2014/08/27(水) 18:24:10.39ID:nJZA/d8q○ in Japanese
0813デフォルトの名無しさん
2014/08/27(水) 18:27:33.64ID:nJZA/d8q「このやろう、英語ではなせよな」
”hey, speak in English”
と。
そういう英語圏での話法が輸入されただろ。
どこかのバカが
「日本語でオーケー」
とか言い出してな。
あほか、日本語だろ!
てえめの国語力のなさに文句言え
ってのが大半だけどな
0814デフォルトの名無しさん
2014/08/27(水) 19:06:55.40ID:TYjPELAM先読み=戻り読みと勘違いしてない?
0815デフォルトの名無しさん
2014/08/28(木) 12:45:08.12ID:pLtajWiU0816デフォルトの名無しさん
2014/08/28(木) 18:21:59.22ID:uZ9r61k2時間「軸」だと、正負はあっても前後は無い気がするなぁ…原点は動かないし
文脈上の他の要素を介した間接的な前後になってしまいそうで怖いんだが
「時間的に前」「前に処理した」とか…普通に文字列の前後を指してしまわないか?
処理装置(カーソルでもオートマトンでもいい)の進行「方向」の前後で良いと思う
0817デフォルトの名無しさん
2014/08/28(木) 18:42:45.16ID:tetCPUIB「この前に行った場所に行こう」「この後に飲み屋に行こう」
移動の場合は「前」というと進行方向と同じ向きになり、「後」というと進行方向とは逆になる
「この道をまっすぐ前に進む」「びっくりして後ろに下がる」
文章の場合は読んでいく進行方向に対して、「前」というと進行方向の逆の既読位置で、「後」というと進行方向と同じの未読位置になる
書く場合でも「前」というと既に書かれた部分をしめし、「後」というとこれから書く部分のことになる
文章に対して前半・後半という表現もある
これは時間のケースと同じである
0818デフォルトの名無しさん
2014/08/28(木) 19:18:48.65ID:XxtALw5X前日とか、後日とか言わないか?
0820デフォルトの名無しさん
2014/08/28(木) 19:32:25.16ID:uZ9r61k2>「この前に行った場所に行こう」「この後に飲み屋に行こう」
こういうのって予定表上の前後っぽいニュアンスになっちゃうから、
これでホントに時間に対する前後の例になってるか悩むんだよね…
自分で書いといてアレだけど「前に処理した」も予定になりそうだし。
>「この道をまっすぐ前に進む」
「ここで前に戻る」は「前」なのに「戻って」しまうけど、どうするん?
「前方」と「方」をつけると文章でも(読み手の)進行方向になる気がするし、
>>803で出てるけど時間だの移動だので区分するんじゃなくて、
前後という表現が掛かる対象を見て区別したほうが良いと思う。
移動体に掛かるなら進行方向で良いけど、それ以外だと大抵逆方向になる。
0821デフォルトの名無しさん
2014/08/28(木) 19:35:52.74ID:u81Xrccg0822デフォルトの名無しさん
2014/08/28(木) 19:55:03.60ID:Hg0+wwkG0823デフォルトの名無しさん
2014/08/28(木) 20:40:26.28ID:9FDOfLGs>「ここで前に戻る」は「前」なのに「戻って」しまうけど、どうするん?
「ここで前に戻る」の「前」は時間経過の「前」だよ
0824デフォルトの名無しさん
2014/08/28(木) 21:26:17.96ID:1RFDsZ4s0825デフォルトの名無しさん
2014/08/29(金) 01:11:03.79ID:4xakm/Il0826デフォルトの名無しさん
2014/08/29(金) 05:02:43.37ID:YWIzckej0827デフォルトの名無しさん
2014/08/29(金) 15:32:57.02ID:XeSPYyFB0828デフォルトの名無しさん
2014/08/29(金) 17:09:34.09ID:FliA9TBF0829デフォルトの名無しさん
2014/08/29(金) 18:17:53.55ID:BbDu6wB20830デフォルトの名無しさん
2014/08/29(金) 21:17:04.24ID:ZQUCiV5Vさくらエディタにログファイルを張り付けて置換コマンドで
IPアドレスのみ残して他の文字は全部除去出来ますか?
検索なら
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
で出来たのですが、これを残して他の文字を削除するというのが出来ませんでした。
条件としては
さくらエディタ(Win7)
テキストファイル
各行に IPアドレスがいろいろ含まれている。
XXX.XXX.XXX.XXX つまりこんな感じ。
その前後には , 空白 タブ ( ) CRLF などがある。
0831デフォルトの名無しさん
2014/08/29(金) 22:19:07.08ID:NX9Ew2LD検索
([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})
置換
$1\n
0832デフォルトの名無しさん
2014/08/29(金) 22:28:03.84ID:NX9Ew2LD検索
(?s-m).*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*
置換
$1\n
0833デフォルトの名無しさん
2014/08/30(土) 00:37:58.37ID:3Iv0NAQx検索:\G.*?(((?<=\G|[^\d\.])(\d{1,3}\.){3}\d{1,3}(?=$|[^\d\.]))((?!\g<2>).)*|((?!\g<2>).)*$)(\r?\n?)
置換:,$2$6
区切り文字も消すと見づらいので,つけたけど、消すだけなら(\r?\n?)を外して$2に置換で良い。
$6カッコ悪いし、IPアドレス無いときのマッチが邪魔だわ…上手い人はどう書くんだろう?
0834デフォルトの名無しさん
2014/08/30(土) 00:45:05.53ID:YmGD3eGR愚痴スマソ
0835デフォルトの名無しさん
2014/08/30(土) 00:56:11.63ID:Gk/RrE5v0836デフォルトの名無しさん
2014/08/30(土) 01:32:54.30ID:3Iv0NAQx検索:((?!((?<=\G|[^\d\.])((1?\d?\d|2[1-4]\d|25[1-5])\.){3}\g<4>(?=$|[^\d\.]))).)*(\g<2>)?\g<1>*(?=$|\g<2>)(\r?\n?)
置換:<$5>$6
先読み等のアンカー集合内での捕獲式集合は番号指定参照などに制限があるけど、
部分式呼出しなら(当然だけど)自由に再利用できるんだねぇ…$1〜$4が先読みを捕獲してる辺含めてなんかキモい。
>>834
だね。お陰でWSH/JScriptのreplaceが大活躍だけど、鬼車拡張使いたい時はどうにもならん…
>>835
けれど行ごとに処理するから殆ど意味がないっていう話。$とかはサクラエディタ自身が検索用の正規表現弄るらしいし。
0837デフォルトの名無しさん
2014/08/30(土) 02:07:16.26ID:6GRP07Vc836さん方式で完璧に取り出すことが出来ました。
正規表現初心者の私には殆ど理解できない式です。よくこんな物凄い式が書けますね。
なお、私の提示した条件に
IPアドレスが無い行もある
って入れ忘れていました。
今回作ってもらった表現式ですと、この行は <> に変換されました。
もし簡単に変更できるなら、IPアドレスの無い行は除去する式に変更して頂けると嬉しいです。
(せっかく作ってもらって文句言うようで申し訳ありませんが。。。)
0838デフォルトの名無しさん
2014/08/30(土) 03:03:29.36ID:3Iv0NAQxやっぱIPアドレス無いときのマッチは邪魔だよねぇ…
区切り文字を含んだ置換文を、IPアドレスの存在しない行の置換にも流用した弊害です。
置換文を$5にすればゴミは消えるが区切りも消えるし、$5$6とかだと空行が残ってしまう。
二度目の置換で<>を削除するのが一番きれいに置換できる…と思ったのでああなった。
元々存在する区切り文字を流用することは出来る。(\g<1>?をIPアドレスと一緒に捕獲して置換文を$5$6や$5にする)
検索:((?!((?<=\G|[^\d\.])((1?\d?\d|2[1-4]\d|25[1-5])\.){3}\g<4>(?=$|[^\d\.]))).)*(\g<2>\g<1>?)?\g<1>*(?=$|\g<2>)(\r?\n?)
ただ、区切り文字の表記ゆれがそのまま出力に反映されて、文章中に存在するIPアドレスとかが哀しいことに
「8.8.8.8とはGoogleのDNSサービスです。0.0.0.0は無効なアドレスや特殊なアドレスを意味します」→「8.8.8.8と0.0.0.0は」
0839デフォルトの名無しさん
2014/08/30(土) 20:38:00.83ID:v0qXwKg40840デフォルトの名無しさん
2014/08/31(日) 02:37:18.56ID:IR2UIS8T0841馬鹿1号
2014/09/01(月) 20:29:57.75ID:63998s3tソースとexeのアップロードを以下のアドレスに上げたのですが
http://sourceforge.jp/projects/regexpress/
どなたか、使ってみて
改良点があれば教えて下さい。
最近、Androidアプリばかり作っているので
ひさびさ、C#も触っとこうと思ってる次第です。
0842デフォルトの名無しさん
2014/09/01(月) 20:41:46.51ID:2GXB3w06svn使わなくてzipでソース配布でもSouceForge.JPでプロジェクト作ってもいいんだな
知らなかったわ
0843デフォルトの名無しさん
2014/09/02(火) 00:19:19.88ID:6ckoH3d5Support Textをパクってください〜
Windows版とAndroid版が欲しい///
正規表現を連続実行できるテキストエディタお願いしますー!
0844デフォルトの名無しさん
2014/09/02(火) 00:20:54.15ID:LHXA0qlAそれより正規表現は方言がいろいろあるからどの方言かくらいは書いといたほうがいいと思う。
0845デフォルトの名無しさん
2014/09/02(火) 01:01:49.17ID:1/i9nKxDSupportTextって1MBくらいのテキスト扱える?
0846デフォルトの名無しさん
2014/09/02(火) 14:54:10.87ID:1Vq/ncadメアド……(.+)@gmail.com
ユーザー名……\1.+
パスワード…….+\1
って風に部分的に使い回すのってセキュリティ的にまずいかね
0847デフォルトの名無しさん
2014/09/02(火) 15:11:55.74ID:O4BThnl40848デフォルトの名無しさん
2014/09/04(木) 00:48:56.54ID:+sF4QUe9時間や番号は通常のままです。
SAPI5読上げ用にVBScript.RegExpで使うことを考えています。
0849デフォルトの名無しさん
2014/09/04(木) 00:54:14.13ID:6btE19Xlあと、一回の正規表現で
A ⇒ A'
B ⇒ B'
...
のように置換することは不可能
0850デフォルトの名無しさん
2014/09/04(木) 01:52:14.88ID:Ks0RyVTtVBScriptだと複数回RegExp.Replace置換するかRegExp.Executeしてループ内で変更してくか…どっちにしても面倒。
0851デフォルトの名無しさん
2014/09/04(木) 22:06:17.48ID:+sF4QUe9やはり結構メンドくさそうなのですね。
定義もまだちゃんと定まっていないので出直します。
0852デフォルトの名無しさん
2014/09/04(木) 22:45:52.96ID:U17zlyiG0853デフォルトの名無しさん
2014/09/04(木) 22:51:55.75ID:4HghpGpo0854デフォルトの名無しさん
2014/09/05(金) 01:48:08.19ID:LrK9xOye最低限の処理以外は、出来れば遠慮したい
0855デフォルトの名無しさん
2014/09/05(金) 02:51:22.30ID:wkXRWLH90856デフォルトの名無しさん
2014/09/05(金) 02:55:07.92ID:wDfAxYZ7何をしようとしているのかすぐには思い出せない
0857デフォルトの名無しさん
2014/09/05(金) 12:30:46.76ID:K3KOceOQ0858デフォルトの名無しさん
2014/09/06(土) 19:48:34.84ID:Bwavr3lm適当な例題と回答の一例みたいなのが欲しい
0859デフォルトの名無しさん
2014/09/09(火) 03:50:37.54ID:3/iFB8VuIDが0-9a-zA-Z+/の64個の文字の9桁で出来ています
これを
/^[a-zA-Z0-9\+\/]{9}?$/
で正規表現を作ってみたのですが
IDに+が入った時にマッチしません
+も[]にエスケープして入れているのに
何故なんでしょうか?
PHPでやっています
0860デフォルトの名無しさん
2014/09/09(火) 06:39:00.85ID:hQhjEIGxPHPぼ正規表現文法は知らないけど、
+や/をそれぞれ\x2Bとか\u002fとかのコードポイント指定にしても駄目?
(+の問題以前に正規表現パターンの引用符/をバックスラッシュでエスケープできてるのかが疑問)
0861デフォルトの名無しさん
2014/09/09(火) 07:14:11.09ID:9n77QlVw文字集合内では量指定子や正規表現リテラルのデリミタ文字はエスケープ省略できる事が多いけど駄目なんかね?
0862デフォルトの名無しさん
2014/09/09(火) 09:17:14.77ID:rLIm4nxe再現する最小限のコードを書け。他のところが間違っているのだろう
$ php -r 'print preg_match("!^[a-zA-Z0-9+/]{9}$!","12345678+");'
1
書けたら質問も不要になってそうだが報告は必要。
0863デフォルトの名無しさん
2014/09/09(火) 10:35:54.78ID:GI4rgDDAダメでした
>>862
if(isset($_GET['id'])) {
$id = $_GET['id'];
if(preg_match('/^[a-zA-Z0-9\+\/]{9}?$/', $id)){
echo "IDです<BR>";
}else{
echo "not ID<BR>";
exit(-1);
}
}
が最小限のコードです。
と、書きつつ他の原因を調べてたところ
GETからIDを取ってるところが怪しいようです。
$idを表示させたらちゃんとIDが表示されるのですが
preg_matchではちゃんと機能してくれません。
文字列リテラルで直接ソースにIDを書き込んだら
preg_matchがちゃんと機能してくれました。
正規表現とは別の問題っぽいので
質問は取り下げさせて頂きます。
みなさまありがとうございました。
0864デフォルトの名無しさん
2014/09/09(火) 10:59:37.43ID:rLIm4nxe+がエスケープされて%2bとかされてるんじゃないの。
0865デフォルトの名無しさん
2014/09/09(火) 12:34:53.41ID:7s/ClwS2文字列のエスケープとかぶってるだけじゃねーの?
http://php.net/manual/ja/regexp.reference.escape.php
0866デフォルトの名無しさん
2014/09/09(火) 12:41:58.06ID:Yqht+GIwURLエンコードについてググレ
0867デフォルトの名無しさん
2014/09/09(火) 16:59:48.63ID:9n77QlVw十分注意しないと巨大なセキュリティホールこさえて死ぬからちゃんと勉強しとけよー
0868デフォルトの名無しさん
2014/09/09(火) 17:54:43.68ID:3/omhs4l0869デフォルトの名無しさん
2014/09/09(火) 17:58:13.12ID:pzDyfk+k0870デフォルトの名無しさん
2014/09/09(火) 18:00:29.85ID:+h+xKEPPPHPの''と""の違いでは?
囲いを、""にしたらどうだ。
0871デフォルトの名無しさん
2014/09/09(火) 18:04:16.57ID:+h+xKEPPhttp://qiita.com/yaaamaaaguuu/items/60bbb4e36a1ef046a6a0
シングルクォーテーションとダブルクォーテーションの違いで詰まった。
http://qiita.com/suin/items/cbbbe8844fd734fa20e2 を参考にした、改行コードを統一するコード
$tmp = preg_replace("/\r\n|\r|\n/",'\n', $hogehoge);
$tmp = preg_replace("/\r\n|\r|\n/","\n", $hogehoge);
どのように挙動が異なるかは上のコードと以下を続けて試してみれば良い。
クォーテーションを統一しないと、意図したとおりの挙動を示さない。
というのも、シングルかダブルかによって、\nを改行として扱うかが変わるからだ。
ダブルはシングルより多くの文字を、エスケープして扱う。
http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.double を見れば何がエスケープされるか分かる。
変数の展開だけがクォーテーションの違いではないという教訓です。
0872デフォルトの名無しさん
2014/09/09(火) 18:56:01.09ID:rLIm4nxe>>862がダブルクォート使ったのはコマンドラインだからで、基本的にはシングル使う。ダブルは改行くらいか。
0873デフォルトの名無しさん
2014/09/10(水) 07:51:00.65ID:T8BC/FY4>>740
>>747
返事おそくなってすいません
どうもありがとうございました
0874デフォルトの名無しさん
2014/09/10(水) 22:01:14.07ID:TE4FFqo+Perl
●検索か置換か?
置換
●説明
「"」で囲まれた文字列以外のスペースを置換したい
●対象データ
a b c "d e f" g h "i j k" l m
●希望する結果
a,b,c,"d e f",g,h"i j k",l,m
よろしくおねがいします
0875デフォルトの名無しさん
2014/09/10(水) 23:02:57.19ID:F+zfATH5http://ideone.com/KU133d
0876デフォルトの名無しさん
2014/09/10(水) 23:51:26.98ID:ck0DKWEV0877デフォルトの名無しさん
2014/09/11(木) 00:03:53.07ID:ItD6Xlguぜひ回答をお願いします
俺の正規表現力ではわからなかった
0879デフォルトの名無しさん
2014/09/11(木) 01:52:29.36ID:RIJn46pc\ (?=([^"]*"[^"]*")*[^"]*$)
でいけるかな
0881デフォルトの名無しさん
2014/09/11(木) 15:07:51.30ID:ItD6Xlgu0883デフォルトの名無しさん
2014/09/12(金) 01:46:50.87ID:RnFNDXF7凄いな…全然解らない…orz
0884デフォルトの名無しさん
2014/09/12(金) 03:57:26.39ID:RnFNDXF7\ (?=([^"]*"[^"]*"[^"]*)*$)
これで出来て
$を無くすと出来ない…
先読みの中に$を入れると…
なぜ否定先読みみたいに動作してるのだろう…う〜む
0885879
2014/09/12(金) 05:21:27.36ID:lGY9wDxG([^"]*"[^"]*")*[^"]* の部分は、
[^"]* →「" が0回出現する文字列」
[^"]*"[^"]*"[^"]* → 「" が2回出現する文字列」
[^"]*"[^"]*"[^"]*"[^"]*"[^"]* → 「" が4回出現する文字列」
[^"]*"[^"]*"[^"]*"[^"]*"[^"]*"[^"]*"[^"]* → 「" が6回出現する文字列」
……
の全てにマッチ、つまり「" が偶数回出現する文字列」にマッチする。
\ (?=([^"]*"[^"]*")*[^"]*$) 全体では、「自身の直後から行末までに " が偶数回出現するスペース」にマッチすることになる。
$を抜くと、行末まで読まずに " が偶数回出現した時点でマッチしてしまう。
空文字列も「" が0回出現する文字列」なので、先読みの中身が空文字列にマッチしてしまい、
\ (?=([^"]*"[^"]*")*[^"]*) 全体では「空文字列が後続するスペース」、すなわち全てのスペースにマッチしてしまうことになる。
0886879
2014/09/12(金) 07:35:55.97ID:lGY9wDxGだから右に " が偶数個あったら行末までマッチするし、奇数個あったら「最後の " の手前」までにマッチする。
いずれにせよ \ (?=([^"]*"[^"]*")*[^"]*) が全てのスペースにマッチするのは変わらない。
0887デフォルトの名無しさん
2014/09/12(金) 08:07:15.80ID:9em7Blpz「$が無いと、最悪0文字でも成立する先読みになってしまってアンカーとしての効果がなくなる」
てだけで良いんでは?
0888デフォルトの名無しさん
2014/09/12(金) 08:54:50.81ID:z7VCF1w0自信なくすわ…
0889デフォルトの名無しさん
2014/09/12(金) 14:41:23.81ID:9mhn+6ow大抵のサイトがメタ文字の働きを紹介して終わり。
0890デフォルトの名無しさん
2014/09/12(金) 16:09:24.58ID:oxD6azvxそっから先はたんに頭良いか否かの問題
0891デフォルトの名無しさん
2014/09/12(金) 16:17:09.63ID:9mhn+6ow「・・で?」
ってなると思う。
0892デフォルトの名無しさん
2014/09/12(金) 16:19:50.65ID:LxISYSrDなんで正規表現調べたんだよ
0893デフォルトの名無しさん
2014/09/12(金) 17:11:38.10ID:N0Ak2k0gものがどれほど使いこなせるかは工夫というかなんというか
0894デフォルトの名無しさん
2014/09/12(金) 18:09:49.35ID:SdpEoEyB>>887
なるほど
今まで、上のような正規表現を書いてもアンカーとして効果が得られず悩んだことがありました。勉強になります
\ (?=("[^"]*"[^"]*)*$)
こうすることで、なるほど〜!と思いました
こういう使い方もあるんですね
使い方のサイト見て、改良するのが一般的かと思う
なかなか見つからないけど
0895デフォルトの名無しさん
2014/09/12(金) 21:48:40.23ID:m9C6tOawエロ画像集めるスクレイピングやってりゃすぐ覚えるよ
0896デフォルトの名無しさん
2014/09/12(金) 21:49:37.16ID:m9C6tOaw0897デフォルトの名無しさん
2014/09/12(金) 22:07:43.77ID:Qq2j8Y7Z0898デフォルトの名無しさん
2014/09/18(木) 06:28:44.15ID:LuX8mYFM2ちゃんねる専ブラ「JaneView」 または 「php」
●検索か置換か?
検索
●説明
・「季節」「まだ寒い」「もうすぐ」「今は」「もうすぐ」のいずれかの文字列と「春」または「冬」の文字が入った文章を検出したい。
・「春」または「冬」という文字は「季節」「まだ寒い」「今は」「もうすぐ」という文字列の前にあっても後ろにあっても良い。
((春|冬).*(季節|まだ寒い|もうすぐ|今は|もうすぐ)|(季節|まだ寒い|もうすぐ|今は|もうすぐ).*(春|冬))
ということがしたいのですが短くなりませんか?
同じ単語がそれぞれ2つずつ必要だと正規表現が長くなりがちなので (季節|まだ寒い|もうすぐ|今は|もうすぐ)
は1回で済ませるのが希望です。
(春|冬(注:後ろあれば不要))(季節|まだ寒い|もうすぐ|今は|もうすぐ)(春|冬(注:前にあれば不要))
↑こんな感じが希望です
●対象データ ●希望する結果
1 まもなく「季節」は「春」ですね 結果:検出 (季節 & 春)
2 「春」はよい「季節」ですね 結果:検出 (春 & もうすぐ)
3 「春」よこい 結果:非検出
0899デフォルトの名無しさん
2014/09/18(木) 06:39:02.02ID:LuX8mYFM0900デフォルトの名無しさん
2014/09/18(木) 06:41:18.66ID:LuX8mYFM0901デフォルトの名無しさん
2014/09/18(木) 08:43:59.98ID:sZWThT0L0902デフォルトの名無しさん
2014/09/18(木) 12:32:59.96ID:WwOS0T/f0903898
2014/09/18(木) 15:16:30.27ID:LuX8mYFMありがとおおおおおお。希望どおりです!
非常に助かります。ありがとうございます!!
>>902
(?=...) ←お察しの通り勉強不足で・・・。勉強してみますm(_ _)m
0904デフォルトの名無しさん
2014/09/18(木) 15:42:18.63ID:FXleOK+M0905デフォルトの名無しさん
2014/09/18(木) 15:54:16.99ID:FM/QfY4S0906デフォルトの名無しさん
2014/09/18(木) 16:10:07.65ID:qcbUbYW3重度の正規表現マニアだなw
0907デフォルトの名無しさん
2014/09/18(木) 16:22:56.41ID:KJB3BXRmたとえば街路樹似くっついてる蝉の抜け殻
たとえばおやじのカツラ
0908デフォルトの名無しさん
2014/09/18(木) 17:43:10.53ID:FXleOK+M顔文字とかは、
0909デフォルトの名無しさん
2014/09/19(金) 21:00:22.86ID:Ncueq+Ud0910デフォルトの名無しさん
2014/09/19(金) 23:08:30.71ID:8Zoa03M92ちゃんねる専ブラ JaneView (JaneStyle JaneXsonでも可)
●検索か置換か?
検索
●説明
先ず以下のURL先を読んで下さい。
http://anago.2ch.net/test/read.cgi/software/1406617118/886
http://anago.2ch.net/test/read.cgi/software/1406617118/888
行末に「・」がひとつあるレスをNG機能であぼーんしたいのですが
テキストへの保存の仕様の関係でうまく行きません。
これを正規表現で対応できませんか?
[^ぁ-んァ-ヶーa-zA-Z0-9一-龠0-9、。\(\)\[\]]こんな風に文字と記号の範囲を設定しまくりつつも
文字コード 0xFCFC だけを除外する正規表現で。
●対象データ
http://peace.2ch.net/test/read.cgi/rail/1409892194/234 (リンク先)
●希望する結果
2ch専ブラJaneView (JaneStyle JaneXson)のNG機能を使って
http://peace.2ch.net/test/read.cgi/rail/1409892194/234 (リンク先) をあぼーんにする
0911デフォルトの名無しさん
2014/09/20(土) 00:47:12.04ID:bsposVaGそのスレの888だけど、その後
\xFC\xFC ?(<br>|$)
でJane Styleだとあぼーんできた
でも、wsh(jscript)だとダメだし
\uFCFCや\xFC+や\xFC{2}ではダメなので
\xFCFCを1文字と認識してて\xFC\xFCと書いたときだけ1文字扱いしてくれるのかも
知れないが実際のところは何故なのか分からないので何か問題があるかもしれない
0912910
2014/09/20(土) 01:12:59.29ID:5nF3s35L向こうのスレでも大変お世話になりました。
他スレや他サイトの文章のコピペで荒らす荒らしが住み着いていまして、
「・」入りのレスは全て荒らし目的の他スレからのコピペなんですよ。
ですから「・」入りのレスをNG登録したくこのスレで質問させていただきました。
>\xFC\xFC ?(<br>|$) でJane Styleだとあぼーんできた
確認しました。綺麗にNG処理できますね。驚きました。
おかげで自分と多くのスレの住人が助かります。ありがとうございました。
0913デフォルトの名無しさん
2014/09/20(土) 01:24:18.70ID:47FzG9Ds\x{FCFC} は?
0914デフォルトの名無しさん
2014/09/20(土) 01:28:02.77ID:bsposVaGとした方がキモチ速いかも知れない
ちゃんとした知識を持った人の解説があれば良いんだけどね
0915デフォルトの名無しさん
2014/09/20(土) 01:33:57.30ID:bsposVaGそういう記述法があったんだね
でもWSHではサポートしてないようだ
ところで\xFC\xFCでマッチする理由を知ってたら教えて欲しい
0916デフォルトの名無しさん
2014/09/20(土) 01:49:51.02ID:47FzG9DsWSHは知らんが、bregonig.dll(鬼車・鬼雲)は \xHH を並べて1つのマルチバイト文字を表すことができる。
なので \xFC\xFC で1文字の扱い。
0917デフォルトの名無しさん
2014/09/20(土) 09:47:43.15ID:R1d15TF40918デフォルトの名無しさん
2014/09/20(土) 09:51:41.89ID:p579UTgt0919デフォルトの名無しさん
2014/09/20(土) 12:49:46.02ID:MmqRSgkh0920デフォルトの名無しさん
2014/09/20(土) 17:31:46.45ID:u2EjBJUk暇なオッサンが気まぐれにパズル問題解いてるだけだろ
俺も含め
0921デフォルトの名無しさん
2014/09/20(土) 21:50:20.96ID:en7FecTiWSH(JScript)だとそもそもUnicodeだから色々と事情が違うのだけど、
U+0000〜U+00FFの範囲の文字なら普通に\xXXの表記も使えるよ。
「"\u00FC\u00FC".match(/\xFC\xFC/)?"match":"mismatch"」→「match」
ShiftJISの2バイト文字は基本的にUTF-16の1文字だと考えていい。
0xFC 0xFCがUTF-16でどの文字に変換されてるかが分かってれば、
変換後の文字がU+30FBなら\u30FBみたいな方法で指定出来るよ。
WSH上の文字列に変換する方法でどの文字になるか変わると思うから、
具体的に\uXXXXで幾つを指定したらShiftJISのFCFCになるかは知らん。
StdInやScripting.FileSystemObjectのOpenTextFileだとU+30FBだった。
FCFCじゃなくて8145もU+30FBに変換されてしまうから区別はできないね。
0922デフォルトの名無しさん
2014/09/24(水) 16:21:22.76ID:OftfFmTf●検索か置換か?→置換
●説明
下記のような文字列があって、ここから入れ子が許された#ITEM〜#ENDを削除して残りを抽出するということをしたいです。
my $str = <<EOF;
aaa
#comment a
#ITEM
bbb
#ITEM
ccc
#END
ddd
#END
#comment b
eee
#ITEM
fff
#END
ggg
EOF
●希望する結果
aaa
#comment a
#comment b
eee
ggg
●その他
下記のように入れ子の内側から消していけば出来そうではありますが、「#ITEM以外の文字」という部分が思いつきません。
1 while $str =~ s/#ITEM(#ITEM以外の文字)*#END//s;
どのような正規表現にすれば実現できますでしょうか?
0923デフォルトの名無しさん
2014/09/24(水) 19:52:05.04ID:7Z8OfgNc我ながらあまり良くない気がするけど、
/#ITEM(?:\n|(?!#ITEM\n).)*?#END\n/
0924デフォルトの名無しさん
2014/09/25(木) 00:34:29.23ID:YzpFJPYrITEMかEND見つける
ITEMが見つかったらスタックにPUSH
ENDが見つかったらスタックの最後からITEMをPOPしてITEM~END処理
ってやる
0925デフォルトの名無しさん
2014/09/25(木) 02:02:18.56ID:0rIQi/zu$reg=qr/^#ITEM$((?!^#ITEM$|^#END$)[\s\S]|(??{$reg}))*?^#END\n/m;$str=~s/$reg//g;
鬼車の部分式呼び出しのほうが好きなんだけど、
Perlなら(?R)とか(??{〜})とか使えばネストを表現できるんじゃなかったっけ?
0926デフォルトの名無しさん
2014/09/26(金) 17:14:51.69ID:dUAbuRD+階層が1段深くなるごとにフラグを+1、浅くなるごとに−1する。
元の階層まで戻ってこれたらマッチ成功。
あと文字列否定は#ENDも含まないように
(?:(?!#(?:ITEM|END)\s).)*
としたほうがより信頼性のある正規表現になる。
0927デフォルトの名無しさん
2014/09/26(金) 18:08:29.58ID:u9JduP9L最短マッチの場合でもEND誤読することがあるの?
0928デフォルトの名無しさん
2014/09/27(土) 02:43:15.36ID:ual2rfpVページ下部の<余談>の前のとこ読んで。
http://akiba.geocities.jp/hp20140401/2014/002.html
0929デフォルトの名無しさん
2014/09/27(土) 03:15:00.91ID:hoM7mJ8vマッチじゃなくて置換が目的の筈だけどそれで置換は結構めんどくさくないか?
>>927
念のため、拡張した時のためだろう。
だけどそこより、>>923や>>926でキーワードの前後にゴミ入ってる場合が気になるわ。
「#ITEMSIZE 5」とか「#comment #ITEM #END」とかに反応したら不味いんじゃないの?
0930デフォルトの名無しさん
2014/09/27(土) 03:33:59.02ID:ual2rfpV>置換が目的
マッチしたものをカラに置換するだけだから何も難しくないよ?
>>926の方法では再帰の正規表現と同じく入れ子構造全体にマッチ出来るから。
>拡張したときのため
その通り。というか本来こう書くべきなんだと思ってる。
拡張しない場合には例外的に .*? で省略出来る、みたいな感じ。
>気になる
それは質問者さんの扱うデータ次第だねぇ。
コメントが自分で入れたものならそんなの想定する必要ないし・・
俺は #END の後ろに半角スペが入ってる場合も想定して \n を \s に
換えたけど、データによってはこれは無駄なことかも知れない。
0931デフォルトの名無しさん
2014/10/11(土) 17:44:41.11ID:KFImV9zd後ろに左右されず独立したオブジェクトのようになるから。
ただ深く考えていない浅い考えなのでツッコミ所は多いはず。
ツッコミ所を潰して真のオブジェクト化を研究すると新しい世界が見えてきたり・・しないか。
0932デフォルトの名無しさん
2014/10/12(日) 14:44:58.80ID:iiFaau3T0933デフォルトの名無しさん
2014/10/21(火) 13:15:50.92ID:QuOrKhyRbase64でエンコードされているのですが
これをデコードしてからマッチさせるところまで
全部正規表現で記述出来ますか?
0934デフォルトの名無しさん
2014/10/21(火) 13:41:30.34ID:BvXaDDVI0935デフォルトの名無しさん
2014/10/22(水) 10:32:26.54ID:zFSkun4Gマッチしてるか調べたい文字列が
base64でエンコードされているのですが
これをデコードしてからマッチさせるところまで
全部正規表現で記述出来ますか?
0936デフォルトの名無しさん
2014/10/22(水) 15:45:50.02ID:53KlIpGd無理。シッシッ
0937デフォルトの名無しさん
2014/10/22(水) 16:29:53.49ID:bF1AAn2u0938デフォルトの名無しさん
2014/10/22(水) 17:10:21.79ID:AdNWLErF0939デフォルトの名無しさん
2014/10/22(水) 18:20:38.22ID:TTZcyZ/E0940デフォルトの名無しさん
2014/10/25(土) 06:44:58.97ID:tlsQQ8k7トンデレラ
シンデレラ
0941デフォルトの名無しさん
2014/10/25(土) 12:45:44.88ID:cqm+9BdH0942デフォルトの名無しさん
2014/10/29(水) 17:03:30.78ID:B3140UjE某板で2文字ずつ改行する荒らしに悩まされています
○●
○●
○●
○●
○●
○●
○●
こんな感じです
1文字ずつ改行をあぼーんする正規表現はあるのですが、2文字ずつ改行の正規表現はないでしょうか
環境は2chMateです
よろしくお願いいたします
0943デフォルトの名無しさん
2014/10/29(水) 17:51:09.73ID:l7NTsp1b2chMateは知らないけど、以下のような感じ?
○●は各行同じじゃなく違う文字ってことだよね?
●1文字が5行以上続く又は2文字が5行以上続く
(?:^|<br>)(?: *(?:[^ ]|[^ ]{2}) *(?:<br>|$)){5}
●1文字または2文字の行が5行以上続く
(?:^|<br>)(?: *[^ ]{1,2} *(?:<br>|$)){5}
●全く同じ1文字の行が5行以上続く又は全く同じ2文字の行が5行以上続く
(?:^|<br>)( *(?:[^ ]{1,2}) *<br>)\1{4}
0944デフォルトの名無しさん
2014/10/29(水) 17:53:45.64ID:l7NTsp1b一つ目は間違ってるというか2つ目と同じなので無視して
0945デフォルトの名無しさん
2014/10/29(水) 18:03:55.47ID:B3140UjEありがとうございます
でもこいつは●に句読点や濁点やその他記号を使ってくるのでだめでした
0946デフォルトの名無しさん
2014/10/29(水) 18:08:05.45ID:B3140UjEあ]
な]
る]
く]
さ]
0947デフォルトの名無しさん
2014/10/29(水) 18:22:11.90ID:l7NTsp1bそれだとマッチするので実際のレスをコピーできてないものと思う
特殊文字とタグを考慮すると
(?:^|<br>)(?: *((<[^>]+>)?(&.+;|[^ ])(<[^>]+>)?){1,2} *(?:<br>|$)){5}
これは不恰好だけどそう思った誰かがもっとスマートな定義を出してくれるだろう
0948デフォルトの名無しさん
2014/10/29(水) 18:25:40.47ID:l7NTsp1b(?:^|<br>)(?: *(?:(?:<[^>]+>)*(?:&.+;|[^ ])(?:<[^>]+>)*){1,2} *(?:<br>|$)){2}
0949デフォルトの名無しさん
2014/10/29(水) 18:28:56.06ID:l7NTsp1b誤動作の可能性大なのでさらに訂正
(?:^|<br>)(?: *(?:(?:<[^>]+>)*(?:&[^;]+?;|[^ ])(?:<[^>]+>)*){1,2} *(?:<br>|$)){5}
0950デフォルトの名無しさん
2014/10/29(水) 18:37:40.94ID:B3140UjEありがとうございます
うーんだめですねえ
2chMateは対応してないみたいです
いちおう正規表現あぼーんはあるのですが
0951デフォルトの名無しさん
2014/10/29(水) 18:44:27.54ID:l7NTsp1b力になれなくてすまん
今時どんなシステムでもサポートしてるようなオーソドックスな表記しか使ってないんだけどねえ
ちなみにJaneだと自分レスはあぼーん対象外だけど、消そうとしてるのは自分のじゃないよね?
0952デフォルトの名無しさん
2014/10/29(水) 18:51:23.26ID:B3140UjE自分のではないです
お手数をおかけしてすみませんでした
0953デフォルトの名無しさん
2014/10/29(水) 19:19:11.62ID:X/KQhwZF0954デフォルトの名無しさん
2014/10/29(水) 19:35:38.73ID:B3140UjE1行目は3文字以上だったりするので
0955デフォルトの名無しさん
2014/10/29(水) 19:43:29.66ID:LJBpagLwそんな程度で良い感じがする
0956デフォルトの名無しさん
2014/10/29(水) 19:49:25.37ID:B3140UjE3行の時もありますのでお願いします
0957デフォルトの名無しさん
2014/10/30(木) 05:02:30.10ID:loUuARxs数値くらい自分で変えろよ。
0958デフォルトの名無しさん
2014/10/30(木) 08:17:30.37ID:MHQ4GYo6あいすみません
>>953
なんだかわからないまでも素人なりに>>949の<br>を\nにしてみたら消せました!
みなさんありがとうございました!
0959デフォルトの名無しさん
2014/10/31(金) 10:51:48.60ID:IV5Ln7qJ0960デフォルトの名無しさん
2014/10/31(金) 14:25:51.27ID:drWZI1dSメイトの質問スレで聞けば良いのに
(..\n){3}
0961デフォルトの名無しさん
2014/11/01(土) 06:36:47.51ID:jBb0dLzq0962デフォルトの名無しさん
2014/11/01(土) 07:39:27.14ID:XfYZMB2l0963デフォルトの名無しさん
2014/11/01(土) 09:49:11.80ID:ke0uDY3t0964デフォルトの名無しさん
2014/11/01(土) 10:22:46.97ID:uM1bLA2m0965デフォルトの名無しさん
2014/11/01(土) 16:24:25.72ID:bnpMV4XWありがとうございます
荒らしが新手を使ってきました
1文字飛ばしです
例えば
うnんnこn
や
くоさоっоてо
などです
nやoはしょっちゅう変えてきます
対処の正規表現をご教授よろしくお願いいたします
0966デフォルトの名無しさん
2014/11/01(土) 16:33:06.54ID:eaY+BTxK0967デフォルトの名無しさん
2014/11/01(土) 16:51:31.90ID:bnpMV4XW単語であぼーん対策でやってるみたいです
2文字ずつ縦書きは相変わらず続けているので正規表現は知らないみたいです
効いてます
0968デフォルトの名無しさん
2014/11/01(土) 16:59:47.85ID:/9f2fySD0969デフォルトの名無しさん
2014/11/01(土) 17:08:10.13ID:bnpMV4XWこらこら適応外の板なので
何でも規制者?が不正を働いた影響とかで
0970デフォルトの名無しさん
2014/11/01(土) 18:10:27.18ID:joyBITsc起動が重くなるだけ損
見ても無視するのが一番
0971デフォルトの名無しさん
2014/11/01(土) 18:40:51.58ID:ija+Iltrいちいちここで聞くんじゃなくて
そろそろ自分で学習しようという発想はないのか?
ここは正規表現の無料サポートセンターじゃねぇぞ
0972デフォルトの名無しさん
2014/11/01(土) 18:45:31.78ID:8FkfL1epだからメイトの質問スレで聞けば良いのにって
ここは便利スレじゃないよ…
メイトは複雑な正規表現は無理というか、作者が止めろと言ってる
そのレスもNG正規表現書けるけど、また新しいの考えてくるよ?
多分だけど、NG方法を晒したり、NGにしたとか書いてないか?
手法を変えた荒らしには必ずスレ住人が関わってるからさ…
とりあえずメイトの質問スレで聞きなよ
0973デフォルトの名無しさん
2014/11/01(土) 18:47:13.92ID:sM88bUQL調査したるからスレ貼れ
0974デフォルトの名無しさん
2014/11/03(月) 02:13:26.71ID:oQlEas+xBoost Regex++(Emeditor)
●検索か置換か?
検索
●説明
直前の"<br>"から、":"までの値を得たい
●対象データ
<br><br>プレーヤー:あああああ:いい<br><br>
<br><br><br><br>ユーザー:うううう:えええbr><br><br>
●希望する結果
<br>プレーヤー:
<br>ユーザー:
<br>.*?: では、
<br><br>プレーヤー:
<br><br><br><br>ユーザー:
となってしまいますが、
希望する結果を得る書き方はあるでしょうか。
分かる方いたら教えて頂けますと幸いです。よろしくお願い致します。
0975デフォルトの名無しさん
2014/11/03(月) 02:28:07.14ID:z73UibHM<br>(?!<br>).+?:
0976デフォルトの名無しさん
2014/11/03(月) 09:08:08.36ID:gonBAC+uだと”<br> <br><br>ユーザー<br>:”になるな
こういうのは2回に分けないとダメ
0977デフォルトの名無しさん
2014/11/03(月) 09:15:32.85ID:s45MrfQd0978デフォルトの名無しさん
2014/11/03(月) 09:26:49.61ID:J7hIuSWK0979デフォルトの名無しさん
2014/11/03(月) 10:19:31.55ID:oQlEas+x>>975さんの書き方で希望の結果を得ることができました。
>>976さんの書き方は正規表現文?でしょうか、少し分かりませんでした、もうしわけないです。
0980デフォルトの名無しさん
2014/11/03(月) 10:29:18.49ID:BF2tmBvn<br>(?![^:]*<br>).+:
0981デフォルトの名無しさん
2014/11/03(月) 10:42:39.77ID:s45MrfQd0982デフォルトの名無しさん
2014/11/03(月) 18:04:32.71ID:LNezD1GX0983デフォルトの名無しさん
2014/11/03(月) 18:32:43.15ID:OIlwUJe50984デフォルトの名無しさん
2014/11/04(火) 04:22:43.85ID:M5qdzaf/0985デフォルトの名無しさん
2014/11/04(火) 06:11:50.60ID:on6IzmUOう\Sん\Sこ
\Sは任意の1文字
0986デフォルトの名無しさん
2014/11/04(火) 16:47:02.84ID:vrNVNjC50987デフォルトの名無しさん
2014/11/04(火) 16:54:45.50ID:VfcuU0Sf>>3
【 初心者 】 正規表現 【 入門 】 ←閉鎖
クックブック ←追加
鬼車、鬼雲 ←追加
>>4
[WebProg] 正規表現道場 Part2 ←板移転
あと、秀丸とサクラエディタの改行の質問が多いからテンプレに入れてもいいかも。
0988デフォルトの名無しさん
2014/11/04(火) 17:30:43.54ID:UlaD+uB4ありがとうございます!
0989デフォルトの名無しさん
2014/11/04(火) 17:47:13.93ID:eXvrBoflありがとうございます、こんな書き方も!勉強になります
0990デフォルトの名無しさん
2014/11/04(火) 21:02:12.04ID:vzr2mlnQ0991デフォルトの名無しさん
2014/11/04(火) 21:17:14.37ID:OT2LX2R40992デフォルトの名無しさん
2014/11/04(火) 21:36:34.24ID:qU+LTnPm0993デフォルトの名無しさん
2014/11/05(水) 03:47:23.72ID:dJ7Su1QF0994デフォルトの名無しさん
2014/11/05(水) 10:07:02.60ID:wAx7C+BC0995デフォルトの名無しさん
2014/11/05(水) 10:26:40.24ID:CXVoT6Mjhttp://peace.2ch.net/test/read.cgi/tech/1415149975/
0996デフォルトの名無しさん 転載ダメ©2ch.net
2014/11/05(水) 11:17:11.12ID:6PdTuYg90997デフォルトの名無しさん
2014/11/05(水) 11:40:49.34ID:bAAQDAhE0998デフォルトの名無しさん
2014/11/05(水) 12:05:25.33ID:Ib1E8cNk0999デフォルトの名無しさん
2014/11/05(水) 13:12:13.26ID:6PdTuYg9http://peace.2ch.net/test/read.cgi/tech/1415149975/
1000デフォルトの名無しさん
2014/11/05(水) 13:12:53.97ID:6PdTuYg9http://peace.2ch.net/test/read.cgi/tech/1415149975/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。