Regular Expression(正規表現) Part12

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Regular Expressionスレです。

質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。

前スレ
Regular Expression(正規表現) Part11
http://toro.2ch.net/test/read.cgi/tech/1362913813/


天ぷら等2以降
2デフォルトの名無しさん:2013/12/17(火) 14:21:56.13
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;
3デフォルトの名無しさん: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/
4デフォルトの名無しさん:2013/12/17(火) 14:28:55.56
5デフォルトの名無しさん:2013/12/17(火) 15:28:30.72
6デフォルトの名無しさん:2013/12/17(火) 15:42:08.77
スレ建ておつ
7デフォルトの名無しさん:2013/12/17(火) 16:58:38.41
>>3
前回不備のあったリンクが直ってるな
8デフォルトの名無しさん:2013/12/17(火) 20:55:54.43
APAスタイルで書かれた参考文献から各フィールドを抜き出したいんだけど、正規表現でやると楽?
著者不明や日付不明、その他タイトルがあったりなかったりするけども。
Perlで最終的にデータベースに流し込みたい。
9デフォルトの名無しさん:2013/12/17(火) 21:09:33.90
APAスタイルってなに
10デフォルトの名無しさん:2013/12/17(火) 21:33:24.69
江南スタイルのことです。
11デフォルトの名無しさん:2013/12/17(火) 21:37:33.08
海外の論文読んだらAPAで書いてあるやつ結構あるだろ
12デフォルトの名無しさん:2013/12/17(火) 21:44:01.17
なんだ。
論文読んだことのない奴には
分からない話か。
13デフォルトの名無しさん:2013/12/17(火) 22:24:05.27
APAスタイル調べてみたけど難しそう

切り分けと判定は別にしたほうがいいような
14デフォルトの名無しさん:2013/12/17(火) 22:41:19.96
●Regular Expressionの使用環境
Perl

●検索か置換か?
検索

●説明
ミドルネームを含む名前も、ミドルネームを含まない名前も分解して抽出したい
また、名前の区切りはスペースやドットなど色々なものに対応したい

●対象データ
Edward Snowden
Edward.Joseph.Snowden
エドワード・スノーデン
エドワード=ジョセフ=スノーデン

●希望する結果
(値を入れているわけではなく、$1〜$3に入っていて欲しいものです)
$1 = "Edward"   $2 = ""   $3 = "Snowden"
$1 = "Edward"   $2 = "Joseph"   $3 = "Snowden"
$1 = "エドワード"   $2 = ""   $3 = "スノーデン"
$1 = "エドワード"   $2 = "ジョセフ"   $3 = "スノーデン"
15デフォルトの名無しさん:2013/12/17(火) 23:59:19.63
>>14
Part11スレへどうぞ
16デフォルトの名無しさん:2013/12/18(水) 00:11:20.15
>>14
どうしても$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;
  }
}
17デフォルトの名無しさん:2013/12/18(水) 00:13:22.40
>>14
先ずは正規化して、どれかのルールに置き換えた方がいいと思う。
18デフォルトの名無しさん:2013/12/18(水) 00:22:55.22
>>16
日本語は?
19デフォルトの名無しさん:2013/12/18(水) 00:45:13.94
sub namechk{
$buf=shift; #引数として名前を受け取る
if ($buf=~/(.+)(\s|\.|=|・)(.+)(\s|\.|=|・)(.+)/){
return ($1,$3,$5);
}elsif ($buf=~/(.+)(\s|\.|=|・)(.+)/){
return ($1,"",$3);
}
}
こっちのほうがいい。
20デフォルトの名無しさん:2013/12/18(水) 00:58:54.76
正規化しろ
21デフォルトの名無しさん:2013/12/18(水) 01:01:51.51
正規化しろ
22デフォルトの名無しさん:2013/12/18(水) 01:12:12.27
正規表現縛りな奴って何考えて生きてんの?
23デフォルトの名無しさん:2013/12/18(水) 01:42:16.31
正規化したら1行余計なものが増えるじゃん
sub namechk{
 $buf = shift;
 $buf =~s/(\s|\.|=|=|・)/"."/meg;
 if ( $buf =~/(.+)\.(.+)\.(.+)/ ){
  return ( $1 , $2 , $3 );
 }elsif ( $buf =~/(.+)\.(.+)/ ){
  return ( $1 , "" , $2 );
 }
}
24デフォルトの名無しさん:2013/12/18(水) 15:04:44.65
@namearr = split( /(\s|\.|=|=|・)/ , $name );
とかそういう話じゃなくて?
25デフォルトの名無しさん:2013/12/18(水) 22:15:22.03
すいません、2chを普通のブラウザで開いたときみたいに
リンク踏んだら確認画面が出て、確認画面のリンクをクリックしたら別ページに飛ぶ、
というのは正規表現でできるのでしょうか?
PHPです
26デフォルトの名無しさん:2013/12/18(水) 22:35:15.56
正規表現にもPHPにもクリックなんて概念はない

エスパーするとHTMLの勉強から始めるべき。
2725:2013/12/18(水) 22:54:58.53
>>26
いえ、HTMLのリンクタグがあるじゃないですか
投稿のときはHTMLのリンクタグを書いてなくてもURLを投稿するだけでリンクタグが適用されるじゃないですか
28デフォルトの名無しさん:2013/12/18(水) 23:15:24.49
要はurlをリンクタグにすればいいだけか?
29デフォルトの名無しさん:2013/12/18(水) 23:36:58.18
釣りなのか本当にバカなのかわからん質問が多い板だぜまったく
30デフォルトの名無しさん:2013/12/19(木) 00:32:05.32
>>27
リンクじゃなくてアンカーだと思うが。
それなら、置換対象となる文字列と、置換後の期待するアンカー要素を提示すれば答えられるのでは。
ということが>>2に書いてある。
31デフォルトの名無しさん:2013/12/19(木) 18:18:46.43
PHPの正規表現を知らないからPerlで

$txt=~s/(http:[a-z])/"<a href='$1'>$1</a>"/;
32デフォルトの名無しさん:2013/12/19(木) 18:31:22.37
>>31
スキームはhttpだけじゃないし、その後もa-zだけじゃないだろう。
http://www.w3.org/Addressing/URL/5_BNF.html
33デフォルトの名無しさん:2013/12/19(木) 19:00:10.10
http
ttp
https
ttps
ftp
辺りかな
34デフォルトの名無しさん:2013/12/19(木) 19:02:44.69
>>31
mailtoもあるし、geoとかtelとか独自っぽいものもあったりなかったり。
35デフォルトの名無しさん:2013/12/19(木) 19:44:40.19
mailtoはリンクタグの中にしか書かないからURL文字列のリンク化には必要なくない?
36デフォルトの名無しさん:2013/12/19(木) 19:49:05.13
URLとメールアドレスの違いってなんだっけ
文章に含まれてるURLっぽい部分が
URLかメールアドレスか判別するのって
正規表現でできるかね
37デフォルトの名無しさん:2013/12/19(木) 19:53:57.46
書けないわけじゃないだろ。
メールの署名とかに書くぞ。

単にURLと見做す補完機能が仕様にないだけ。それは正規表現の問題ではない。
38デフォルトの名無しさん:2013/12/19(木) 20:03:41.12
$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?\s])/"<a href='$1'>$1</a>"/eg;
39デフォルトの名無しさん:2013/12/19(木) 20:25:27.40
>>38
結果がおかしいぞ
http:/
までしかリンクにならない
40デフォルトの名無しさん: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;
41デフォルトの名無しさん:2013/12/19(木) 20:35:28.31
[]の中はエスケープ不要なんじゃなかった。言語の方のエスケープなのかな。
42デフォルトの名無しさん:2013/12/19(木) 20:41:06.60
試してみたけどエスケープないとエラーが出た。
Perlの仕様だと思われ。
43デフォルトの名無しさん:2013/12/19(木) 20:46:23.51
>>40
それだけじゃないから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/ !!
44デフォルトの名無しさん:2013/12/19(木) 21:04:59.70
\sが余計なんだろ

$line =~s/((http|ttp|https|ttps|ftp|url|mailto):[a-zA-Z0-9\$\-\_\@\.\&\+\!\*\"\'\(\)\=\;\/\#\?]+)/"<a href='$1'>$1</a>"/eg;
45デフォルトの名無しさん:2013/12/19(木) 21:57:08.85
>>44
こういう正規表現って毎回書くの?
それとも関数作って関数の中にこれ一行だけ書くの?
46デフォルトの名無しさん:2013/12/19(木) 22:04:16.92
>>45
どちらがわかりやすいかで考えれば
答えは自ずと出てくるだろ。
47デフォルトの名無しさん:2013/12/19(木) 22:13:26.50
ここってUnEditorの正規表現の質問もOK?
48デフォルトの名無しさん:2013/12/19(木) 22:18:35.54
>>45
「こういう」が何を指してるか知らんけど、今はサブルーチンにしてしまうのが一般的。
サブルーチン作ると重くなるとか言ってたマシンスペックの低い時代ならマシンスペックと相談だろうね。
今はマシンスペックがかなり高いから、余程のことがない限り可読性重視。

あと、保守性の問題もある。
例えば>>44の正規表現からftpを外そうと思ったときに、あちこちに同じ正規表現があったら全部変更していく必要がある。
サブルーチンにしておけば1箇所変更すればよい。
49デフォルトの名無しさん:2013/12/19(木) 22:50:21.72
>>47
調べたら鬼車じゃん
いいんじゃね
50デフォルトの名無しさん:2013/12/19(木) 23:25:32.19
●Regular Expressionの使用環境
Perl 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つ分です)
(クラスによって項目の数が違います)
51デフォルトの名無しさん:2013/12/20(金) 03:44:23.37
ここは重複スレです。

本スレ誘導
正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/
52デフォルトの名無しさん:2013/12/20(金) 03:47:57.61
s/(\.test\{[^}]*padding:\s*)[^;]+/$14px/g;
53デフォルトの名無しさん:2013/12/20(金) 03:52:58.58
>>51
チョンの本スレ宣伝はここにも来たか
54デフォルトの名無しさん:2013/12/20(金) 04:49:30.72
part10 1340383120.dat 2012/06/23(土) 01:38:40.22〜2013/03/12(火) 22:57:24.75
part11 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週間以上経ってからこの偽物スレが立ってる。

どう考えても確信犯。
このスレを立てたのは恐らく本物のキチガイ。
55デフォルトの名無しさん:2013/12/20(金) 07:02:29.39
>>54
スレタイを勝手に変えてしまったから、どちらとも言えないけどね。
なんとかスタンダードとやらで、こちらが正統でいいんじゃないの。
56デフォルトの名無しさん:2013/12/20(金) 16:49:34.58
正規表現って環境依存のイメージだけど、いわゆる「正規表現」ってあるの?

例えばC言語でも、
コンパイラの独自拡張を除いたいわゆる「C言語」ってあるじゃん。
そういう意味でいわゆる「正規表現」ってあるの?
57デフォルトの名無しさん:2013/12/20(金) 18:55:07.78
>>56
POSIXとかPCREのこと?
CもANSI C89とかいろいろあるでしょう。
58デフォルトの名無しさん:2013/12/20(金) 19:07:50.28
>>56
Posix正規表現だけでもSRE、BRE、EREと3種あるくらいで所謂とか本家とかは
聞いたことないですね。
C++11でEcmascriptの正規表現もサポートとしていることや、利用者数、使い
やすさ等を鑑みてJSの正規表現を中心に考えてみてはどうでしょうか。
自分の製品に正規表現エンジンを組み込む場合は。
59デフォルトの名無しさん:2013/12/20(金) 21:05:18.16
>>52
短くていいな。
俺も昨日ちょっと考えてたけど、もうちょい長くなった。
6050:2013/12/20(金) 22:57:20.64
>>52
ありがとうございます!
もう少しでCSSを解析してハッシュの配列にしてからやるところでした!
61デフォルトの名無しさん:2013/12/21(土) 02:56:45.92
>>55
part10終盤の様相からしたら仕方ない。
スレタイ変えた程度であの手の馬鹿が引っ込むってのも不自然だが、
自演だとしても質問スレ系みたいに変なルール追加されたわけでもなさげだし。
62デフォルトの名無しさん:2013/12/21(土) 03:04:06.35
パーサとかって内部では正規表現使ってパースしてんのかね?
何のパーサかにもよるだろうけど、RSSのパーサとか
63デフォルトの名無しさん:2013/12/21(土) 03:50:16.65
>>62
見てみりゃいいじゃん。
64デフォルトの名無しさん:2013/12/21(土) 03:53:20.96
正規表現も使っているが、
正規表現だけでは限界があるので
単語の判断ぐらいに使ってる。
65デフォルトの名無しさん:2013/12/21(土) 04:00:03.52
>>62
RSSのパーサってか、XMLのパーサだな。
66デフォルトの名無しさん:2013/12/21(土) 04:39:34.92
そもそも正規表現自体が形式言語理論畑の言葉・概念がパターンマッチに流用されたものだからなぁ…
正しい定義で言うといわゆる正規表現は正規表現と呼ぶべきではないとか言う事になりそうですらある
逆にいわゆる正規表現とは全く異なるBNFとかの方が元の定義で言う正規表現らしかったりすらする程
そしてXMLはExtended BNFで定義されてるから、Extended BNFを正規表現と呼ぶならXMLパーサ=正規表現処理エンジンという事に

真面目に実装の話に戻ると、何らかの正規表現言語で言語を定義してそれをパーサジェネレータに食わせてパーサ作ったりするはず
ここで使う正規表現はいわゆる正規表現で無い事も多いが、正規表現を使っているといえば使っている
出力されたパーサには正規表現が含まれ・・・・・・ないんじゃないかなぁ・・・・・・
67デフォルトの名無しさん:2013/12/21(土) 11:16:20.61
JScriptのエンジンって何?
68デフォルトの名無しさん:2013/12/22(日) 00:37:07.32
質問です

C言語のソースコードに以下の条件に従ってスペースを入れたいのですが正規表現でどう書けば良いでしょうか?

1. 関数のカッコの中では、カッコの前後、及びカンマの前後に半角スペースを1つ入れたい
2. 但し、関数の中で文字列が引数になっている場合、その文字列に含まれるカッコやカンマの前後には何も入れない
3. 但し、ソースコード全体では、既に希望通りの半角スペースの入っている部分と、まだ入っていない部分がある

鬼車5.9.2です
よろしくお願いします
69デフォルトの名無しさん:2013/12/22(日) 01:05:58.47
>>66
正規表現は文字列の集合を表すもの。
BNFは文脈自由文法を表すもの。
従って、正規表現で表現できるものはBNFでも表現可能だが、逆は真でない。
例えば、XMLの文法を表現するのにBNFが使えるが、正規表現では無理。
70デフォルトの名無しさん:2013/12/22(日) 01:12:21.33
BNFは正規表現ではないの?
71デフォルトの名無しさん:2013/12/22(日) 01:19:10.65
BNFが正規表現であると定義する世界ではORだけあれば全ての言語を記述できる。
可能なすべてのパターンをORでつなげばいいから。
72デフォルトの名無しさん:2013/12/22(日) 01:21:57.64
>>69
あー、右正規文法か左正規文法を表現するのが正規表現で、
文脈自由文法は右正規文法と左正規文法を同時に含みうるのか。

ただどっちにしてもそこで言う正規表現ってこのスレで扱う正規表現じゃ無くてその元ネタの方だよね。
73デフォルトの名無しさん:2013/12/22(日) 01:25:47.38
君は何が何でも自分が正しいと主張したい人のようだね。
74デフォルトの名無しさん:2013/12/22(日) 01:26:53.77
でも結局のところ、Ajaxとかで取得したRSSをJSで加工するときは正規表現使うよな
75デフォルトの名無しさん:2013/12/22(日) 01:40:04.42
>>74
DOMで扱う場合は使わない
76デフォルトの名無しさん:2013/12/22(日) 01:48:18.97
>>67
JavaScriptの正規表現エンジンはブラウザ独自。
だからIEで挙動が違ったり、Chromeが正規表現のエンジンを高速化したりということがある。

何年か前からブラウザは動作速度合戦になって、各ブラウザ共色々テコ入れしてる。
JavaScriptとその中の正規表現エンジンもかなり動作速度に影響するから当然テコ入れ対象。
77デフォルトの名無しさん:2013/12/22(日) 01:51:07.17
EMCAで規格が決まっています。
78デフォルトの名無しさん:2013/12/22(日) 02:54:20.70
規格とエンジンは別だろ
規格に基づいてエンジン作るわけだから
79デフォルトの名無しさん:2013/12/22(日) 02:57:41.75
Wikiって文法解析してHTML生成してるけど、あれは正規表現で解析してるの?
80デフォルトの名無しさん:2013/12/22(日) 03:06:17.95
念のためにきくけど、正規表現で住所を切り分けるのって無理だよな
81デフォルトの名無しさん:2013/12/22(日) 03:20:59.29
>>80
要件による
82デフォルトの名無しさん:2013/12/22(日) 03:22:31.90
IEのJSの正規表現の挙動がおかしいのは昔話題になってなかったっけ。
83デフォルトの名無しさん:2013/12/22(日) 05:25:17.33
>>77
ECMA?
84デフォルトの名無しさん:2013/12/22(日) 10:09:35.44
>>79
全てがそうとは限りませんが、俺が見た範囲ではそうでした。
85デフォルトの名無しさん:2013/12/22(日) 12:32:08.28
PHPです

HTMLのIMGタグから、ファイル名と、
もし幅か高さが指定されていればそれも抽出したいです

<img src="test.jpg">
<img src="test2.gif" width="200">
<img src="test3.png" width="200" height="160">
86デフォルトの名無しさん:2013/12/22(日) 12:47:55.74
imgタグの仕様が分からなきゃ何とも言えないだろ
widthはパーセント指定できるの?構文解析の仕様は?
87デフォルトの名無しさん:2013/12/22(日) 12:56:13.97
>>85
HTMLパーサでパースしろ
そしてここには二度と来るな
88デフォルトの名無しさん:2013/12/22(日) 13:00:48.21
>>68
鬼車知らんけど、
([\(,])([.\s]*?)([,\)])
かな。
89デフォルトの名無しさん:2013/12/22(日) 13:25:48.13
UTF-8でマルチバイト文字にのみマッチさせる正規表現はありますか?
90デフォルトの名無しさん:2013/12/22(日) 13:34:14.52
ASCIIの範囲以外ならマルチバイトだろ。
91デフォルトの名無しさん:2013/12/22(日) 13:44:18.71
>>90
数字だったら\dで表せるけどそういう簡単なのないですか?
92デフォルトの名無しさん:2013/12/22(日) 14:55:17.89
[^アスキー全文字]+
93デフォルトの名無しさん:2013/12/22(日) 15:38:51.59
POSIX文字クラスでググレ
94デフォルトの名無しさん:2013/12/22(日) 19:33:09.96
>>80
四日市市とかで切り分けに失敗する自信がある
95デフォルトの名無しさん:2013/12/22(日) 20:53:52.69
廿日市市と八日市市、他に何があったかな?
仮に[^:ascii:]{1,6}市?市としても、市名の次に市が付く町名が来たら厄介だな。

POSIX使ってみた([^:ascii:])
知らない人は「鬼車 正規表現」でググればわかる。
WSHとかでは使えないみたいだけど。
96デフォルトの名無しさん:2013/12/22(日) 21:53:21.53
俺らの脳は市町村をどうやって切り分けてんだろ
97デフォルトの名無しさん:2013/12/22(日) 22:37:59.73
>>95
四日市には市場町という地名があるようだ…
98デフォルトの名無しさん:2013/12/22(日) 23:06:47.37
ワラタw
99デフォルトの名無しさん:2013/12/22(日) 23:10:22.38
結局ブラウザごとにJSの正規表現エンジンって違うの?
100デフォルトの名無しさん:2013/12/22(日) 23:37:00.86
>>97
なりたちからして自然だと思うが
101デフォルトの名無しさん:2013/12/23(月) 01:00:16.43
>>80>>95
もう既存の市町村名から正規表現生成するスクリプト作ってしまったほうが良い気が
102デフォルトの名無しさん:2013/12/23(月) 07:58:36.38
>>101
既存の市町村名全部持って、普通にマッチングした方がいいだろ...
103デフォルトの名無しさん:2013/12/23(月) 14:36:10.76
これだけ注意すればよさそうだな
四日市市
野々市市
廿日市市
104デフォルトの名無しさん:2013/12/23(月) 14:39:25.15
ちなみに八日市市は現存しない
http://www.city.higashiomi.shiga.jp/0000000610.html
平成17年2月11日には、
1市4町(八日市市・永源寺町・五個荘町・愛東町・湖東町)が合併し「東近江市」が誕生しました。
105デフォルトの名無しさん:2013/12/23(月) 14:42:30.11
プログラマを救うために住所表記に対する正規表現の使用を禁止する法律が求められている
106デフォルトの名無しさん:2013/12/23(月) 15:44:28.03
住所はいろいろあるからねー
http://www.addressmatch.jp/rule.html
107デフォルトの名無しさん:2013/12/23(月) 19:50:41.11
>>68
2番目の条件がきつい
108デフォルトの名無しさん:2013/12/23(月) 23:14:24.79
引数になってる文字列のコンマを別のものに置き換えて、
それからやったらどうよ
それでソースコードのコンマを処理し終わったらもとに戻す

[[comma]]とか
109デフォルトの名無しさん:2013/12/23(月) 23:53:19.75
文字列の中に[[comma]]があったらどうする気だ。
110デフォルトの名無しさん:2013/12/24(火) 04:03:10.05
>>102
大差なくね?
ああまあ市町村名DBをそのまま食わせられるからメンテ楽ってのはあるか…
しかし一度regexp.exec(str)すれば即結果が得られるってのもそれはそれで楽
>>104
古い住所入れる奴が居るから・・・
>>108-109
メタ文字決めて先にメタ文字のエスケープしろよ、定番だろ。
111デフォルトの名無しさん:2013/12/24(火) 15:37:26.19
クリスマス関連の文字列を見たくないからネットサーフィンの際に
クリスマス関連の文字列でマッチしてクリスマス関連の文字列を含むウェブページをフィルタリングしたいのですが
どういう正規表現で書けばいいでしょうか
112デフォルトの名無しさん:2013/12/24(火) 17:47:45.62
>>111
s/クリスマス関連/あぼーん/g
113デフォルトの名無しさん:2013/12/24(火) 19:25:31.28
ブラウザの設定をアラビア語とかペルシャ語にしたらどうだい
114デフォルトの名無しさん:2013/12/25(水) 12:13:30.69
s/.*(クリスマス|X'mas).*/あぼーん/g
115デフォルトの名無しさん:2013/12/25(水) 13:17:37.81
Perl

痴漢

$1200.00
\24980000

3桁ごとに「,」を入れたい
$1,200.00
\24,980,000
116デフォルトの名無しさん:2013/12/25(水) 18:08:29.45
s/(\d\d\d(\.|$))/,$1/
117デフォルトの名無しさん:2013/12/25(水) 19:07:10.42
このスレにいる奴はこれどれくらいできる?
http://regex.alf.nu/
118デフォルトの名無しさん:2013/12/25(水) 22:14:50.89
>>117
プログラミングの役に立たない無意味な正規表現を作る能力で何の能力を測るのかが不明。
119デフォルトの名無しさん:2013/12/26(木) 11:54:11.09
正規表現を使ったただの遊びで、
何か測るとか 考えすぎっつーか余裕なさすぎ
120デフォルトの名無しさん:2013/12/26(木) 12:16:44.97
>>117
ちゃんとマッチする物作って、点数が低いとかよくわからん。
マッチさせないギリギリを狙うゴルフなんだろか。
121デフォルトの名無しさん:2013/12/26(木) 13:58:48.86
>>116
それじゃダメだろ
122デフォルトの名無しさん:2013/12/26(木) 15:39:20.51
じゃあお前書いてみろよ
123デフォルトの名無しさん:2013/12/26(木) 15:48:59.72
>>120
パターンの文字数が少ない方が点数が上がる
ドット使いまくり
124デフォルトの名無しさん:2013/12/26(木) 16:07:49.11
Plain strings (205)
Anchors (204)
Ranges (202)
Backrefs (197)
Abba (183)
A man, a plan (165)
素数の逆転がうまくいかねー
125デフォルトの名無しさん:2013/12/26(木) 18:48:08.56
>>117
これ解析して正規表現を生成するプログラムは書くことできる?
126デフォルトの名無しさん:2013/12/26(木) 18:48:35.02
>>125
当たり前だろ
127デフォルトの名無しさん:2013/12/26(木) 20:13:22.44
>>123
なるほど、fooとか入れてくのね。
ありがd。
128デフォルトの名無しさん:2013/12/27(金) 06:30:50.86
>>126
Prime(0) を生成するプログラムお願いします。
129デフォルトの名無しさん:2013/12/27(金) 08:52:28.55
Plain strings (207) foo
130デフォルトの名無しさん:2013/12/27(金) 18:44:21.67
>>124
^(xx+?)\1+$
の逆だから素直に
^(?!(xx+)\1+$)
131デフォルトの名無しさん:2013/12/27(金) 23:49:58.74
すいません。VBScriptで
抽出した文字列にダブりがあります。
例:
AAA
BBB
AAA
CCC
BBB
CCC
これを
AAA
BBB
CCC
のように抽出し直すにはどうすればいいでしょうか?
132デフォルトの名無しさん:2013/12/28(土) 00:43:17.44
>>131
cat text.txt | sort | uniq
133デフォルトの名無しさん:2013/12/28(土) 06:02:29.57
>>132
重複を削れといっているようだが、整列し直せとは言っていない。
134デフォルトの名無しさん:2013/12/28(土) 09:24:51.01
>>133
Unixの勉強しましょうね
135デフォルトの名無しさん:2013/12/28(土) 11:41:43.23
>>131
正規表現スレだぞ
根本的に勘違いしてる
死んで良いよ
136デフォルトの名無しさん:2013/12/28(土) 12:25:00.00
>>134
?
137デフォルトの名無しさん:2013/12/28(土) 12:31:59.03
>>133
cat text.txt | sort | uniq

uniqの部分をしっかり見ろよ
138137 ようわからん:2013/12/28(土) 12:38:28.75
AAA  AAA  AAA  AAA
BBB  BBB  BBB  BBB
AAA          
CCC  CCC  CCC  CCC
BBB  BBB       
CCC  CCC  CCC    
この方法だとuniqしたく無い場合に良い。
139デフォルトの名無しさん:2013/12/28(土) 12:43:27.01
整列が要件に入っていないのに勝手に整列させるのはまずいって言いたいんじゃないの?
するとsortが使えない、ゆえにuniqが使えないとなって破綻する。
UNIXのコマンドって微妙に使えないのが多くて、微妙に違うだけの同じ目的の
コマンドが多くて困る。
解決案として要件の変更が必ず提示されるのも困る。
それでUNIXは廃れたんじゃないかな?
140デフォルトの名無しさん:2013/12/28(土) 12:49:05.40
KISSの精神を体現したのがMac。
141デフォルトの名無しさん:2013/12/28(土) 12:55:41.87
>>139
要件に入ってない範囲なら整列するもしないも自由なのが常識。
142デフォルトの名無しさん:2013/12/28(土) 12:58:58.73
有るものを押し付けるのがUNIX、お客様の要望するものを用意するのが
Windows。
143デフォルトの名無しさん:2013/12/28(土) 13:39:07.55
/imsxadlup の /d /l /u の使い方教えて。英語読めないの。
http://perldoc.jp/docs/perl/5.14.1/perlre.pod#47l
144デフォルトの名無しさん:2013/12/28(土) 13:46:20.25
>>139
それは使いこなせてないんだろ。
Unixのコマンドは90%の解決を目指してる。その方が使いやすい。
自分の要件に合わせた、それにしか使えないコマンドが欲しいならプログラムすればいい。
145デフォルトの名無しさん:2013/12/28(土) 14:11:57.43
UNIXのコマンドは微妙に使えないのが使いやすい。
使わなくて済むからだ。
〜ジャーゴンニュースより抜粋〜
146デフォルトの名無しさん:2013/12/28(土) 14:19:31.38
>>143
/d
この修飾子は、パターンマッチングの際にプラットフォーム固有のロケール(ASCIIなど)を使用するように指示する。
ただし、Unicodeを使うべき理由がある場合はこの設定はそちらが優先される。
この修飾子が具体的にパターンマッチングにどのような変化をもたらすかを以下のサンプルで示した。

/l
この修飾子は、パターンマッチングの際に現在のロケール設定を使用するように指示する。
このロケール設定はコンパイル時のロケールと同じであるとは限らず、
setlocale()を用いて任意のロケール設定を用いることができる。

/u
この修飾子は、パターンマッチングの際にUnicodeのルールを使用するように指示する。
147デフォルトの名無しさん:2013/12/28(土) 15:07:09.11
>>141
すでに抽出した行と同じ行は除外するというのが最も自然な
アルゴリズムなので、それを期待している可能性が高いから
整列は避けるというのが一番自然。
148143:2013/12/28(土) 15:17:11.45
>>146
おお、ありがとうございます。マジで助かりました。
おかげ様でperl 5.14.1の正規表現ルールを全部覚えられました、感謝〜。
149デフォルトの名無しさん:2013/12/28(土) 15:18:54.48
>>148
どういたしまして。
150デフォルトの名無しさん:2013/12/28(土) 15:40:23.44
>>147 普通プログラムの問題だとsort()だけで重複が取れたりするから、 sortするのが当たり前だと思う。 ただ実務では300行に1行重複した行が紛れ込んでそれを削るという ケースがほとんどだから、絶対にsortを掛けたりしないもんだけど。
151デフォルトの名無しさん:2013/12/28(土) 18:44:49.26
Regular Expressionと関係ねえからよそでやれ
152デフォルトの名無しさん:2013/12/29(日) 01:12:47.99
そもそも要件に「VBScriptで」って入ってる段階でINIXコマンドは使えないって思うもんじゃね?
153デフォルトの名無しさん:2013/12/29(日) 04:51:41.49
>>152
そこはまぁCygwinとかMinGW+MSYSとかgnuwin32とかの各コマンド入れればいいって話になるんじゃね。
まぁどのみち正規表現じゃないからVBScriptの相談できる場所で聞けよて終わりなんだけど。
154デフォルトの名無しさん:2013/12/29(日) 09:03:40.37
>>152
「VBScriptで作ったデータの処理」であって「VBScript で処理しろ」とは書いてないけどな。
まあ、一回きりなら Excel でもいいかもしれないし、VBScript で完結させたいなら Dictionary 使うのが楽。
155デフォルトの名無しさん:2013/12/29(日) 09:15:59.40
ひとこと、
「正規表現ではできません」でいいのでは。
156デフォルトの名無しさん:2013/12/29(日) 13:27:09.27
perlならいろんなアクセスの仕方があって遊べる問題なんだけどなぁ。
VBSでやるとしたら正規表現の出番は ^.*$ くらいしか無いんじゃ・・これすら必要無いか・・
157デフォルトの名無しさん:2013/12/29(日) 13:34:16.38
無理矢理正規表現でやるなら

1、最終行が1行目になるように順番を逆さまにする
2、s/^(.*)$(?=[\s\S]*^\1$)[\r\n]*//g;
3、1をする

これで順番通りの結果になる。
158デフォルトの名無しさん:2014/01/03(金) 02:42:43.46
Twitterの自分のツイートをデータベースに入れていきたいんだが
公式から正規表現で解析できる?
159デフォルトの名無しさん:2014/01/03(金) 03:57:47.91
API叩けば?
160デフォルトの名無しさん:2014/01/03(金) 19:20:28.19
英文の中から特定の単語を含むセンテンスを抽出する方法を教えてください

環境はPerlです
161デフォルトの名無しさん:2014/01/03(金) 20:03:17.54
>>160
センテンスごとに特定の単語を表す正規表現がマッチするか調べる。
162デフォルトの名無しさん:2014/01/03(金) 22:39:20.14
>>160
センテンスの前と後の改行を条件にする
163デフォルトの名無しさん:2014/01/04(土) 12:47:08.01
>>160
センテンスの開始と終了を正規表現で表し、「特定の単語」をその間に挟む
164デフォルトの名無しさん:2014/01/04(土) 13:10:19.31
>>160

$text = '英文';
$keyword = '特定の単語';
$regex = qr/(?:\G|[.?!;])\s*((?=[^.?!;]*\b$keyword\b)[^.?!;]+(?:[.?!;]|\z))/;

while ($text =~ /$regex/g) {
print "$1\n";
}

() や "" などの中に文章が再帰的に書かれているようなものは考慮していない.
165デフォルトの名無しさん:2014/01/05(日) 13:52:40.26
3.14
166デフォルトの名無しさん:2014/01/07(火) 08:56:16.73
修正確認しました!ありがとうございました!

Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm#WithoutXYZ
167デフォルトの名無しさん:2014/01/07(火) 19:47:23.30
>>166
こういう計算方法って初めて見た。なんて名前の学問?なんだろう。
168デフォルトの名無しさん:2014/01/07(火) 21:12:17.73
こういうのか〜、大学で学べるんだねぇ。
ttp://www.ccn.yamanashi.ac.jp/~ysuzuki/automaton/automaton2012_08.pdf
169デフォルトの名無しさん:2014/01/07(火) 22:41:51.17
PowerShellスクリプトで仮想ドライブイメージのファイルパスを入力した後に、
パス文字列として正しいかどうかのチェックをしたくて次のようなコードを使ってみました。

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コマンドレットの利用はここでは扱わないものしてお願いします。
170デフォルトの名無しさん:2014/01/08(水) 03:15:48.51
"[a-z]:\\[^/:*?`"<>|]+\.vhdx?"
171デフォルトの名無しさん:2014/01/08(水) 04:27:05.50
>>170
あれ?エスケープ文字は`だってあっちこっちに書いてあるからその通りにしてたけど、それで動くんですね。
どうもありがとうございます。
172デフォルトの名無しさん:2014/01/08(水) 16:38:03.89
最後に $ 付けないと誤爆しそう。

"例: X:\VHD Images\example01.vhdx.damy"

あと 「ReplaceStr Tool」 は対象テキストの改行が無視される仕様なので
改行を含むテキストにマッチさせたいときはご注意を。
173デフォルトの名無しさん:2014/01/09(木) 06:00:28.69
>>172
ありがとうございます。
自分用に使う分には誤爆の心配は一応無いのでいいのですが、きっちりやる時はそうですね。
おっしゃるとおり、ReplaceStr Toolは1行だけのテストにしか使えませんね。
まだ試してはないけど、ベクターにも何やらありますね。
174デフォルトの名無しさん:2014/01/11(土) 20:59:48.36
C言語のプログラムのソースから宣言されてる全変数を抜き出す正規表現を教えてください
175デフォルトの名無しさん:2014/01/11(土) 23:17:13.53
正規表現じゃ無理
176デフォルトの名無しさん:2014/01/12(日) 00:02:13.49
>>174
変数宣言に関する言語の文法とあなたのコーディングルールを全て列挙できたら考えないこともない。
あとプリプロセッサとコメントは禁止で。
どぞっ。
177デフォルトの名無しさん:2014/01/12(日) 04:23:26.19
int foo, *bar, baz[8];
char *tai_pei64, honkon32[32];

とりあえずこれだけで考えると
int、charで始まる行で、a〜z、A〜Z、0〜9、_、*を含む部分か?
関数を除外するには"("を含んだ行なら無視するか。
178デフォルトの名無しさん:2014/01/12(日) 20:29:15.96
目的が分からんけど ctagsとか使ったほうが現実的なんじゃないの
179デフォルトの名無しさん:2014/01/13(月) 00:11:59.89
http://ideone.com/3wrY6i
俺にはムリだな
180デフォルトの名無しさん:2014/01/16(木) 13:18:43.71
age
181デフォルトの名無しさん:2014/01/16(木) 19:04:22.39
htmlファイルから、画像リンクの画像のディレクトリだけ取得する方法を教えてください
182デフォルトの名無しさん:2014/01/16(木) 20:22:08.30
ターゲットのhtmlのソースを読む
183デフォルトの名無しさん:2014/01/16(木) 22:02:42.42
184デフォルトの名無しさん:2014/01/16(木) 22:12:38.67
>>181
basedir使えよ。環境知らんが。
185デフォルトの名無しさん:2014/01/16(木) 23:37:49.09
 定期的にHTMLのパースに関して質問してくる奴が居るが同一人物か?
186デフォルトの名無しさん:2014/01/17(金) 05:59:24.78
・文字列を含まない正規表現 (先読みはNG)
・再起を使った正規表現 (??{code})はNG

これ作って面白い正規表現のベスト1、2なんだけど使える人が少なすぎる。
もっと普及させようよ。というかまず使えるようになってくれよ。
187デフォルトの名無しさん:2014/01/17(金) 09:27:36.46
上は機械的にやるだけだし、作成するのあるのでそれ使えばいいが、なんか本末転倒な気持ちがする。
再*帰* は、すべての正規表現環境で使えないし。
188デフォルトの名無しさん:2014/01/17(金) 14:12:23.47
まぁ面白いと思う人がいれば..だね。ある種のゲームだと思うんだが。
189デフォルトの名無しさん:2014/01/17(金) 23:28:17.63
●Regular Expressionの使用環境
ruby

●検索か置換か?
置換

●説明
行中の改行を削除したい
以下でやると改行だけでなく改行の前の一文字も何故か消えてうまくいきません
対象データの場合は「元」が消えてしまいます

ruby -e 'puts open("input.txt").read.gsub(/[^。¥n]¥n/,"")' > output.txt

●対象データ
こんにちはお元
気ですか。
私は元気です。

●希望する結果
こんにちはお元気ですか。
私は元気です。
190デフォルトの名無しさん:2014/01/18(土) 03:14:41.62
何故か消えてじゃねえよ池沼かよ
[^。\n]の意味考えてから投稿しろカス
191デフォルトの名無しさん:2014/01/18(土) 08:28:14.05
>>189
「行中の改行を削除したい」は矛盾した表現。
「文字列中の改行を削除したい」か「行末の改行を削除してひとつの文字列にしたい」
だと思う。
192デフォルトの名無しさん:2014/01/18(土) 09:04:51.25
「句点の直後にない改行を削除」だろうな
(?<!。)\n
193189:2014/01/18(土) 10:19:24.32
[^。¥n]は句点のある改行以外の文字と一致することをようやく理解できました
勘違いしていました
192様のやり方でできました
みなさまありがとうございました
194デフォルトの名無しさん:2014/01/18(土) 10:42:29.07
理解できてねえな
これはガチ池沼に見える
195デフォルトの名無しさん:2014/01/18(土) 11:17:22.59
どう考えても、素人に対して、回答もせず難癖つけてるアホの方がそう呼ばれると思うがな。
196デフォルトの名無しさん:2014/01/18(土) 11:25:24.11
池沼がそう思って自己満足していればいいんじゃね
誰も困らないしね
197デフォルトの名無しさん:2014/01/18(土) 11:38:53.05
難癖に見える次元じゃセンス0なのは明らかだから至急他のお仕事探した方がいいと思うよ

次からは↓でどうぞ
正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
198デフォルトの名無しさん:2014/01/18(土) 13:10:02.66
くやしいのう
199デフォルトの名無しさん:2014/01/18(土) 14:10:17.09
煽れば教えて貰えると思うようじゃ死ぬまで無理だぞ(笑)
200デフォルトの名無しさん:2014/01/18(土) 15:52:02.57
またオライリーの本が理解出来るほど頭良くない人が暴れてるのか。
201デフォルトの名無しさん:2014/01/18(土) 16:56:55.68
>>195
難癖っつかツンデレだろ
190「[^。\n]がどういう意味を調べれがそうなった理由がわかるよ」
194「[^。\n]の意味を誤解している。もう一回ちゃんと理解してみよう」

実際[]の意味を適当な解説から丸写しするくらいしか説明する事ない。
202デフォルトの名無しさん:2014/01/18(土) 18:10:45.52
俺はもうオートマトンの勉強始めたというのにおまえらは・・
低レベルのダンジョンをいつまでもウロウロしてもしょうがなかろう。
203デフォルトの名無しさん:2014/01/18(土) 18:18:08.51
俺の次のステージはこっち。じゃあなおまえら。

生真面目で賢いオートマトンたんに萌える
http://toro.2ch.net/test/read.cgi/shar/1232872347/
204デフォルトの名無しさん:2014/01/18(土) 18:30:16.63
オートマトン厨か
205デフォルトの名無しさん:2014/01/18(土) 22:24:36.17
オートマトンを学ぶと↓この問題の答えを表す正規表現が作れるようになるぞ。
http://news.livedoor.com/article/detail/8239104/
206デフォルトの名無しさん:2014/01/18(土) 22:35:15.56
見なくていいように、>>205のタイトルはこれ
【クイズ】狼とヤギと野菜を川の向こうに無事に運ぶ方法を求めよ
207デフォルトの名無しさん:2014/01/19(日) 02:21:57.46
今まで知らなかったってとこでお察し
208デフォルトの名無しさん:2014/01/19(日) 04:51:14.32
俺が興味あるのは正規表現だけでそれ以外の技術にはまったく興味無いから。
perlの正規表現は誰も使わないようなメタ文字類まで使いこなせるがperlそのものはまるで知らない。
209デフォルトの名無しさん:2014/01/19(日) 05:02:05.90
>>208
なら机上でやってろよ。
210デフォルトの名無しさん:2014/01/19(日) 05:09:31.17
>>209
じゃあおまえが上で俺が下な。
211デフォルトの名無しさん:2014/01/19(日) 07:33:31.67
アッー
212デフォルトの名無しさん:2014/01/19(日) 11:10:20.35
俺はもうポケモン卒業したというのにおまえらは・・
213デフォルトの名無しさん:2014/01/19(日) 13:47:41.62
>>208
厨学生はお気楽でいいな
まあその餌では誰も釣れんが
214デフォルトの名無しさん:2014/01/20(月) 00:35:22.22
・文字列を含まない正規表現
・Ardenの規則

ネットには正しい解説が見当たらなかった2つ。どうやらこの辺がネット独学(笑)の限界らしい。
大学レベルの内容すら出てこないとはな、ネットのレベル低すぎる・・。
215デフォルトの名無しさん:2014/01/20(月) 00:36:44.71
まあ、ネット使ってる大学生はないから仕方ないよw
216デフォルトの名無しさん:2014/01/20(月) 00:51:42.18
んだね、さて、寝る。
217デフォルトの名無しさん:2014/01/20(月) 11:45:30.88
海外のpdfが読めてないのがわかるなw
ネットのレベルが低いだと?
井の中のカワズちゃんは、島国の中心で哀でも叫んでろ
218デフォルトの名無しさん:2014/01/20(月) 12:02:22.87
最初に拾った棒切れで一晩子犬を叩いていたら
大人にうるさいと言われたでござるの巻
219デフォルトの名無しさん:2014/01/20(月) 18:22:31.69
>>217
英文で何か書いてるサイトがあることは随分前から知ってるよ。
ただ英文なんて読んでらんねーからノーカウント。そんなん読むくらいなら普通に本買うわ。
220デフォルトの名無しさん:2014/01/20(月) 18:27:36.05
インターネットのレベルの話からずれましたね
221デフォルトの名無しさん:2014/01/20(月) 18:32:10.45
英文に関しては俺のレベルが低すぎるのを認めざるを得ない。あと数学も。
正規表現でぐぐると行列が出てくるサイトがあるんだがさっぱりだ。
222デフォルトの名無しさん:2014/01/20(月) 18:33:45.98
さて、気付いてもらえるか・・
http://toro.2ch.net/test/read.cgi/army/1384257046/
223デフォルトの名無しさん:2014/01/20(月) 19:05:48.98
鳥肌レベルで気持ち悪いわ
224デフォルトの名無しさん:2014/01/20(月) 21:39:08.94
偏差値40無かったしな、許せ。
225デフォルトの名無しさん:2014/01/21(火) 03:07:08.52
正規表現メモの中の人の日記
http://www.kt.rim.or.jp/~kbk/zakkicho/index.html

日記更新した。どうやら気付いてもらえなかったようだ。
226デフォルトの名無しさん:2014/01/21(火) 04:03:29.00
うお、雑技の中の人ありがとう!地味に嬉しい。
227デフォルトの名無しさん:2014/01/21(火) 04:19:40.24
Perl正規表現雑技 - ある文字列を含まないものにマッチする正規表現
http://www.din.or.jp/~ohzaki/regex.htm#Without

> (?:fooba|foob|foo|fo|f)

これは f でまとめて書くかどうか悩んだだろうなぁw
まとめないほうが分かりやすいのでこの書き方に賛成ですw
228デフォルトの名無しさん:2014/01/21(火) 04:22:06.48
↑これの元ネタ↓

正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
229デフォルトの名無しさん:2014/01/21(火) 05:02:16.61
XXXXXfoo → XXXXX.
XXXXXfoo → XXXXXfo.

うーん。。 この説明はちょっとというか、かなり分かりにくい。最後のピリオドがメタ文字に見えたし・・。
読む人の中でこの説明を理解出来る人はほとんどいないと思う。
230デフォルトの名無しさん:2014/01/21(火) 15:33:02.18
否定は、正規表現でやりたくない内容ランキングのトップクラスだよな。
231デフォルトの名無しさん:2014/01/21(火) 19:06:33.85
"xyz" みたいに文字が被らない否定ならまだいいけど、"xyx" みたいに文字が被る場合の否定は
即答出来る人はほぼいないんじゃないかな。頭の体操としては面白いんだけどね。
232デフォルトの名無しさん:2014/01/21(火) 22:25:26.02
雑技の中の人、わがまま聞いてくれてありがとう〜m(_ _)m
233デフォルトの名無しさん:2014/01/22(水) 03:26:52.31
>>231の答え ^(?:[^x]|x+y*[^xy])*(?:x+y*)?$
234デフォルトの名無しさん:2014/01/22(水) 22:42:26.46
HTMLからタグや不要な部分を取り除いたら、
空白だけの行とか、虫食い状態になってしまったんですが、
どのようにすればいいでしょうか?

自分は、pythonですが、pattern = r"^\s*\t*(\r)?\n$"
としてまずは空白行を取り除こうとしました
しかし、失敗しました

アドバイスいただけたらと思います
235デフォルトの名無しさん:2014/01/22(水) 22:47:01.47
>>234
\n にマッチさせるなら $ を使う必要はないのでは。

$ は \n の直前にマッチする。
つまり $\n が本来の書き方。
236デフォルトの名無しさん:2014/01/22(水) 22:50:17.11
俺なら[\s\n]+\nを\nに置き換える
237デフォルトの名無しさん:2014/01/22(水) 22:54:54.34
>>234
\s*\t* は \s* と同じ意味。\s はタブにもマッチする。

>>236
それだとファイル先頭の行が空行だったら消せないね。
238デフォルトの名無しさん:2014/01/22(水) 23:37:30.99
皆さん、アドバイスありがとうございました
アドバイスを参考に、^[\s*(\r)?\n]+(\r)?\nとかを\nに変えてみました
しかし、やはりダメでした
検索しても、いい情報が出てきませんでした
思っていたより難しいですね...
239デフォルトの名無しさん:2014/01/23(木) 00:56:46.11
将棋のルール覚えるみたいに初めはちょっと大変だよ。
まずは a を b に置換出来るかどうかから始めたほうがいい。
240デフォルトの名無しさん:2014/01/23(木) 09:57:52.30
241デフォルトの名無しさん:2014/01/23(木) 13:22:58.47
あれ?wwwwww偽スレ削除されてたなw
ざまぁwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
誘導に対して荒らしだのNGだのほざいてたゴミ乙wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ああいう奴らが社会の底辺で足引っ張ってるんだろwwwwwwwwwwwwwww
どうせプライドのかけらもない恥知らずだからこのスレになに食わぬ顔で書いてるんだろうなwwwwww
本当に思考回路歪んでるし生きてる価値がないんだから氏ねばいいのにwwwwwwwwwwwwwwwwww
偽スレの正統性を主張してたみたいに現実社会でも意味不明な狂った主張をしてるんだろwwwwwwwwwしかも自覚なしwwwwwwwwwwwwwww
迷惑だから早く芯でねwwwwwwwwwwwwwwwwwwwwwwww
242デフォルトの名無しさん:2014/01/23(木) 14:11:58.39
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwww
243デフォルトの名無しさん:2014/01/23(木) 14:57:09.39
ぶっちゃけ、あんなハッタリに引っ掛かって大人しくなるほどアホだとは思わなかった。
どんだけピュアハートなんだよ。
244デフォルトの名無しさん:2014/01/23(木) 17:56:37.00
草生やす程楽しいか?
削除されることは最初から分かってただろうに。
削除されるべくして削除されただけ。
245デフォルトの名無しさん:2014/01/23(木) 20:49:54.40
ゴミ
246デフォルトの名無しさん:2014/01/23(木) 23:24:17.63
まぁここはキチガイ隔離スレだから我々はあちらで粛々とスキル向上に励みましょう。
このスレは糞質問の雨嵐を受ける傘スレ。
247デフォルトの名無しさん:2014/01/24(金) 00:17:56.24
>>246
我々ってキチガイのお前一人だけだよ。
248デフォルトの名無しさん:2014/01/24(金) 01:01:07.27
ワロタw 知らないままでいなさいな。
249デフォルトの名無しさん:2014/01/24(金) 01:12:33.81
>>247
分かってないな
わざわざこっちに来てまで荒らすってことは
あっちを荒らしてくれってことだよ
250デフォルトの名無しさん:2014/01/26(日) 03:11:54.27
初心者に分かりやすいのは単純な分岐。

(a\*|b\*|c\*|a|b|c)

*付きのものを前に書かないといけません。(順番大事)
251デフォルトの名無しさん:2014/01/26(日) 13:48:39.54
>>250
むこうのスレの90です。
勉強になります。ありがとうございます。

おそらく私の質問に関するレスだと判断しましたので
レスをさせていただきました。
252デフォルトの名無しさん:2014/01/26(日) 14:43:40.93
いえいえ、次からはこちらで質問したほうが回答もらいやすいです。では。
253デフォルトの名無しさん:2014/01/26(日) 20:18:56.54
DirectCast(12UI, UInt32Value)
から
12UI
を取り出す正規表現を教えてけろ。\( \)を使おうとしたのだが、
文字列の中にもともと入っている()があるのでうまく行かん。
254デフォルトの名無しさん:2014/01/26(日) 21:20:59.04
>>253
どういう正規表現だとどういうのがうまく行かないのか書け
255デフォルトの名無しさん:2014/01/26(日) 21:26:52.82
>>253
エスケープしろ、またはするな。
どちらかは環境による。
256デフォルトの名無しさん:2014/01/27(月) 14:36:23.65
DirectCast\((12UI), UInt32Value\)
257デフォルトの名無しさん: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)

どうしたらよいでしょうか?
環境はサクラエディタの置換コマンドです。
258デフォルトの名無しさん:2014/01/27(月) 15:27:17.46
>>257
.の意味を調べればよい。
259デフォルトの名無しさん:2014/01/27(月) 15:34:39.28
>>258
できました。数年ぶりに正規表現使ったので間違えていました。
ありがとうございました。
260デフォルトの名無しさん:2014/01/27(月) 16:44:44.21
ヒントを与えると後は自力で頑張る良い質問者
261デフォルトの名無しさん:2014/01/27(月) 20:51:42.26
正規表現のテクニックをマスターできるチュートリアルって無い?
手を動かすだけでできるようなやつ
262デフォルトの名無しさん:2014/01/28(火) 03:17:05.07
手を動かすだけ 正規表現 でググると出てくるサイトがあるが、数回動かして終わりで意味なし。
263デフォルトの名無しさん:2014/01/28(火) 05:01:27.39
●Regular Expressionの使用環境
Javascript

●検索か置換か?
置換

●説明
'1'を含まないABCからDEFまでを削除したいです

●対象データ
ABC
1
DEF

ABC
2
DEF

ABC
3
DEF

●希望する結果
ABC
1
DEF
264デフォルトの名無しさん:2014/01/28(火) 05:05:40.49
s/Javascript/Dart/g
265デフォルトの名無しさん:2014/01/28(火) 10:10:43.60
>>263
「'1'を含まないABCからDEF」というと対象データでは2パターン考えられる.
 A) 2の前後,と,3の前後
 B) 2の前のABCから3の後のDEFまで

おそらくAだとして,
str = str.replace(/ABC[^1]*?DEF/g, '');
266デフォルトの名無しさん:2014/01/28(火) 12:01:12.29
「123」 を含まない場合 → ABC(?:(?!123|DEF).)*DEF

否定の中にもDEFを書くのがミソ。
267デフォルトの名無しさん:2014/01/28(火) 12:39:43.06
>>266
最短一致を使えば否定の中にDEFを書く必要はなくなる.
ABC(?:(?!123).)*?DEF
268デフォルトの名無しさん:2014/01/28(火) 16:46:19.88
この2つの違いが分からんかな、まぁめんどくさいからいいや。
269デフォルトの名無しさん:2014/01/28(火) 17:25:51.83
右も左も分からん人は>>266推奨。予期せぬトラブルを未然に防げる。
270デフォルトの名無しさん:2014/01/28(火) 22:03:43.46
予期せぬトラブルを説明してください
271デフォルトの名無しさん:2014/01/29(水) 03:20:24.59
266はDEFを通り越す可能性が無いけど267は通り越す可能性を残す、と言えば分かるかな。
正規表現単体で使う分にはまったく問題ないが正規表現の一部として正規表現の中に
放り込むと問題が生じる可能性が出てくる。ある程度正規表現に慣れた人なら無意識に回避
出来るだろうが初心者の場合それが出来ないからね。
272デフォルトの名無しさん:2014/01/29(水) 03:24:16.13
ちなみに266だと後ろを見ないマッチにしても問題ない。
分岐があると遅くなるがこれを最小限にする方法もある(詳説 正規表現参照)

上級者にもおすすめしたい書き方なのだ。
273デフォルトの名無しさん:2014/01/29(水) 03:58:32.19
さて、向こうに帰ろう。
274デフォルトの名無しさん:2014/02/01(土) 16:47:50.64
●Regular Expressionの使用環境
PHP

●検索か置換か?
検索

● 文字コードを取得したい。
例)
text/html;charset=ISO-8859-1 > ISO-8859-1
text/html;charset=utf-8 > utf-8

preg_match('/text\/html;charset=(.+?)/i' , $str);

これだと先頭の1文字しか取れません。
自分なりに頑張ってここまでしたのでアドバイスください。
275デフォルトの名無しさん:2014/02/01(土) 16:52:12.73
$
276デフォルトの名無しさん:2014/02/01(土) 16:58:34.76
あ、なるほど行末をしめす$なわけか。
即答どうもです、助かりました。
277デフォルトの名無しさん:2014/02/01(土) 17:43:47.02
最短マッチをやめろ
278デフォルトの名無しさん:2014/02/01(土) 20:50:26.76
([^>]+)
279デフォルトの名無しさん:2014/02/02(日) 19:25:37.08
カンマ付きの数値と、カンマ無しの数値の両方に対応する正規表現がほすぃ
280デフォルトの名無しさん:2014/02/02(日) 19:31:36.16
いらね
281デフォルトの名無しさん:2014/02/02(日) 19:35:26.39
やっぱいいや
282デフォルトの名無しさん:2014/02/10(月) 17:23:05.15
>>42
すんごい亀だけど、-が真ん中にあるからエラーになったんじゃないの?
283デフォルトの名無しさん:2014/02/10(月) 18:52:12.86
いくらなんでも亀すぎだろw
284デフォルトの名無しさん:2014/02/10(月) 23:38:57.90
●Regular Expressionの使用環境
Notepad++.exe 6.53(Scintillaライブラリ,正規表現は複数行に対応してます)

●検索か置換か?
置換

●説明
Movable Type形式にエクスポートしたブログのコメントだけを削除したいです。
"COMMENT:"で始めって"-----"で終わるのを""で置換したい

●対象データ
AUTHOR: foo
-----
BODY:

-----
COMMENT:
AUTHOR: bar

-----
--------
AUTHOR: foo
-----
BODY:

-----
--------
285デフォルトの名無しさん:2014/02/10(月) 23:39:29.02
●希望する結果
AUTHOR: foo
-----
BODY:

-----
--------
AUTHOR: foo
-----
BODY:

-----
--------

単純にCOMMENT:.*-----で検索すると最初の"COMMENT:"から"ファイル末尾の"--------"の最後の"-----"部分までが選択されてしまいます。
"COMMENT:"から最初に現れる"-----"までがヒットするようにしたいです。
286デフォルトの名無しさん:2014/02/10(月) 23:45:59.68
>>283
すっごい久しぶりにスレひらいたから、ごめんね><
287デフォルトの名無しさん:2014/02/10(月) 23:47:17.98
>>285
対応してるかどうかしらないけど、 .* → .*? にするといいよ
288デフォルトの名無しさん:2014/02/11(火) 00:00:34.65
>>287
ありがとー
できた
289デフォルトの名無しさん:2014/02/15(土) 00:47:50.42
文字コードはutf-8やShift-JISのように英数字があり、一個だけ"-"が含まれていますが、
コレを正規表現で文字コードかどうかのvalidateを行うにはどのようにしたらいいですか?
[a-zA-Z0-9-]+では、-----とかも通ってしまいます
290デフォルトの名無しさん:2014/02/15(土) 02:03:36.42
何言ってるかよく分からないけどこれでいい?

[a-zA-Z0-9]*-[a-zA-Z0-9]*

※真ん中のハイフンのエスケープは環境に合わせて
291デフォルトの名無しさん:2014/02/15(土) 02:05:31.57
文字で出来たコードと文字を表現するコードは意味が全く違うぞ[a-zA-Z0-9]+-[a-zA-Z0-9]+
292デフォルトの名無しさん:2014/02/15(土) 08:18:47.09
エスパーが結婚しとるw
293デフォルトの名無しさん:2014/02/15(土) 08:35:56.02
チルドレンは俺の嫁
294デフォルトの名無しさん:2014/02/15(土) 10:22:10.36
もじーず (きごー もじーず)*
_の扱いに悩むな
295デフォルトの名無しさん:2014/02/15(土) 11:50:20.25
>>289
文字コードの名前は「英数字があり、一個だけ"-"が含まれています」ってのがそもそも間違い.
http://www.iana.org/assignments/character-sets/character-sets.xhtml
また,正式には「Shift_JIS」だが,モジュールによっては「SJIS」とか「Shift-JIS」とかも受け付けたりするので,それらも認めるかどうかは前提次第.

正確にvalidateしたいんなら文字コードの名前をひたすら列挙していくしかない.
列挙せずに規則性(条件)を探して正規表現にするのは面白いかもしれない.
例えば,
・「-」や「_」では終わらない
・「:」の後ろには数字が2桁か4桁続いて終わる
とか.
296デフォルトの名無しさん:2014/02/15(土) 13:27:17.08
面白くねー
297デフォルトの名無しさん:2014/02/15(土) 15:34:21.63
単純に
[a-zA-Z0-9]+(-|_|:)?[a-zA-Z0-9]+して、
例えばlen(str) <= 30
くらいにしとけばセキュリティ的にも大丈夫なんじゃないの?
あ、正規表現の部分が全然ダメか
298デフォルトの名無しさん:2014/02/19(水) 19:13:00.30
input="aa(?<id>でーた)aaa" →idグループを置換→ "aa置換aaa"
名前付きグループを置換する正規表現はどう書けばおk?
グループ内にカッコが存在するパターンも考えると俺の頭じゃ思いつかなかった。
299デフォルトの名無しさん:2014/02/19(水) 20:31:04.07
な、なんだって?
ごめん、ちょっとよく聞こえなかった。
環境も聞き取れなかった。
300デフォルトの名無しさん:2014/02/19(水) 21:16:56.09
$ echo 'input="aa(?<id>でーた)aaa"'|sed 's/(?<id>でーた)/痴漢/'
input="aa痴漢aaa"
301298:2014/02/19(水) 21:50:47.96
対象:aa(?<id>でー()た )aa
パターン:\(\?<id>.*?\)
結果:aa置換た )aa

対象:(aa(?<id>でーた )aa)
パターン:\(\?<id>.*\)
結果:(aa置換

最短、最長使ってみたがダメだった。
不確定の正規表現のパターンを正規表現で置換は無理ゲーなのか。
302デフォルトの名無しさん:2014/02/19(水) 21:51:04.83
正規表現の一部を正規表現でマッチさせて置換したいってことなんかな。
素の正規表現だと有限回数の入れ子しか書けないからムリだろう。

鬼車なら、
^(?<文字集合>\[\^?(?:[^\\\[\]]|\\.)*\])
^(?<基本表現>(?:[^\\()\[\]]|\g<文字集合>|\\.)*)
これを
^(?<基本表現>(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)
こうして
^(?<正規表現>\(\g<正規表現>*\)|\g<基本表現>)*
これを
^(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*
こうして
\(\?<id>(?<正規表現>\(\g<正規表現>*\)|(?:[^\\()\[\]]|\[\^?(?:[^\\\[\]]|\\.)*\]|\\.)*)*\)
こうするとか。
基本表現のところがだいぶ適当だから場合によっては怪しい動きをするかも。

部分式呼び出しの使い方間違えててちょっと焦った。
303デフォルトの名無しさん:2014/02/20(木) 01:26:17.90
「正規表現 再帰」 でぐぐれ。と言えば済む話。
304デフォルトの名無しさん:2014/02/21(金) 06:53:06.58
フォームにurlを入力させる場合に不正かどうかを調べたいんですけど、
以下の正規表現で大丈夫でしょうか?
urlは星の数だけあるので全てに適用できるか分かりません

pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-zA-Z0-9+&amp;@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&amp;@#\/%=_|]/i";

何かアドバイスあれば教えて欲しいのですが
305デフォルトの名無しさん:2014/02/21(金) 11:05:16.67
>>304
>>1-4を100回音読してから出なおせ
306デフォルトの名無しさん:2014/02/21(金) 13:43:02.94
RFCだか何だか見れば済む話のような
307デフォルトの名無しさん:2014/02/21(金) 15:29:38.12
厳密なメールアドレスチェックとか正直やりたくないのう
308デフォルトの名無しさん:2014/02/21(金) 15:44:18.60
>>298
厳密でないドコモとかのメールアドレス通らなくて文句言われるしな。
309デフォルトの名無しさん:2014/02/21(金) 16:07:54.34
Internationalized Domain Nameでググれば絶望的な気分になれるぞ。
310デフォルトの名無しさん:2014/02/21(金) 17:18:22.06
>>304
星の数ほどあっても1億か10億くらいのURLを一つ一つ試してみて、そのうちの99%以上パスすればOKとかにすればいいんじゃね?
99%未満ならパスしなかったURLを元に調整する感じで。
99%とかって具体的な値は自分で決めなきゃいけないけどな。
311デフォルトの名無しさん:2014/02/21(金) 22:06:55.70
>>310でFAだろ
10億もいらんな、1億で十分
312デフォルトの名無しさん:2014/02/21(金) 22:15:48.49
まずスキームで3つしか挙げていないという。http,https,ftp
313デフォルトの名無しさん:2014/02/21(金) 22:25:56.27
言いたいことは分かるけど
ネットやっててその3つしか見たことがない
314デフォルトの名無しさん:2014/02/21(金) 22:35:51.22
>>304

http://お名前.com/

が不正と判断されてしまう。
315デフォルトの名無しさん:2014/02/21(金) 22:37:23.24
お名前.comもそういえば見たことないな
使ってる人いんの?
316デフォルトの名無しさん:2014/02/21(金) 22:41:08.51
317デフォルトの名無しさん:2014/02/21(金) 22:46:37.53
>>313
mailto:
file:
tel:
gopher:
javascript:
318デフォルトの名無しさん:2014/02/21(金) 22:48:43.96
gopherって何?
ゴップハー?
319デフォルトの名無しさん:2014/02/21(金) 22:53:18.37
gopherか、20年前ぐらいに使ったことあるかも。
320デフォルトの名無しさん:2014/02/21(金) 23:08:56.91
>>313
たぶん言いたいことを理解できていないと思うから、
RFC1738を100回音読してからまた来るといいよ
321デフォルトの名無しさん:2014/02/21(金) 23:10:41.50
>>318
ゴーファー。
ブラウザのプロキシの設定で見かけることがある。
322デフォルトの名無しさん:2014/02/21(金) 23:12:02.04
音読したけど、英語だったので意味がわからなかったとか
323デフォルトの名無しさん:2014/02/22(土) 00:42:49.93
ゴーフルならおととい食ったが
324デフォルトの名無しさん:2014/02/23(日) 18:20:44.10
1時間以上試しているけど、わからないので助けてくれ!

● PHP
● 検索(抽出)
● 「abc--'--'-"-"--」 から→ 「--------」を取り出す

abc以降の -------- を取り出したい。
ただし '" は不要というパターン

'/.*abc(.+[^"|\']*)/'
/.*abc([^"|\']*)/

これでいけそうでいけないんだよねー
325デフォルトの名無しさん:2014/02/23(日) 18:33:27.55
echo str_replace( "-","", "[abc--'--'-\"-\"--」");
単純にこうじゃいかんの?
326デフォルトの名無しさん:2014/02/23(日) 18:36:15.46
ああごめん寝ぼけてた、忘れてくれw
327デフォルトの名無しさん:2014/02/23(日) 19:17:59.08
正規表現じゃなくて単なる文字列操作でいいんじゃないのか?
先頭のabcを捨てて、残った文字列からクォート文字を消すという2手順でいいだろ
328デフォルトの名無しさん:2014/02/23(日) 19:21:51.03
つーか正規表現じゃムリじゃね?
クォート文字の位置が固定ならばできるが、そういう要件じゃなさそうだし
329デフォルトの名無しさん:2014/02/23(日) 22:18:09.84
s/[^-]//g
330デフォルトの名無しさん:2014/02/23(日) 23:01:48.43
たぶんハイフンはプレースホルダーの意味で書いたのではないか
どうなんだ>>324
331デフォルトの名無しさん:2014/02/23(日) 23:27:46.75
v[^-^]v
332デフォルトの名無しさん:2014/02/24(月) 01:37:54.80
>>329は、取り出したいものを正規表現するのではなく、取り除きたいものを正規表現して置換するという意味で書いた。
333デフォルトの名無しさん:2014/02/25(火) 02:38:54.15
>>324
それは「--」と「--」と「-」と「-」と「--」を抽出してから結合してる
正規表現でやるなら(結合を含むから)最低でも置換になる

「'"」の除去をしてから 「--------」を取り出すか
「--'--'-"-"--」を取り出してから「'"」の除去をすれば
抽出と置換の二段階になるけど多分楽に事が済む
334デフォルトの名無しさん:2014/02/25(火) 17:37:02.74
>>333
もしかしてプログラム経験無い?テキストエディタの正規表現とは別世界だぞ。
335デフォルトの名無しさん:2014/02/25(火) 17:47:27.85
>>334
どんだけショボいエディタ使ってんだよw
336デフォルトの名無しさん:2014/02/25(火) 20:27:28.66
/(?<=abc)(.+)/で一度ふるいにかけて/['"]/でsplitなり/['"]/自体除去すりゃいいんじゃね
2段階に分けるほうが楽
337デフォルトの名無しさん:2014/02/25(火) 23:33:19.95
この質問の回答に一度も\Gが出てこないのが寂しい。
338デフォルトの名無しさん:2014/02/26(水) 00:33:57.11
>>334
飛び飛びの領域を単一のマッチ範囲や捕獲式集合として捕獲できる正規表現なんてあるの?
Perlのコードサブパターンとかで拡張すれば出来るかもしれないけど、
普通は複数のマッチ範囲や複数の捕獲式集合として得るしか無いと思うんだが

それと、まともなエディタならPerlとかの特殊極まりない拡張を除けば大体の機能が使えるだろ

>>334>>337
正規表現でプリーズ
339324:2014/02/26(水) 22:44:02.26
返事が遅くなりましたが、色々アドバイスありがとうございました。

可能ならば正規表現で処理したかったのですが、
皆さんのアドバイス通り置換での2段階処理とします。

これの方が楽で確実みたいですしね。
ども、でした。
340デフォルトの名無しさん:2014/02/27(木) 00:53:58.53
正規表現は機能でなくて表現。
341デフォルトの名無しさん:2014/02/27(木) 06:30:21.40
機能だろ
黙ってろクズ
342デフォルトの名無しさん:2014/02/27(木) 07:20:11.35
>>340
LispのS式でも勉強してみよう
(S式 Symbolic expression)


一応書いておくけど
表現=expression
343デフォルトの名無しさん:2014/02/27(木) 08:20:03.61
>>342
elispで使ってるくらいであんま詳しくないけど、sexpは構造でそれが機能かどうかはcar次第では。
正規表現は検索や置換の対象となる文字集合を表すものですしょ。別に名前に表現が入ってるからとか気にしてなかった。
344デフォルトの名無しさん:2014/02/27(木) 15:19:32.41
元々は論文などの学術的な用途で説明に使う純粋な表現だった
それを元に正規表現による検索ルーチンが作られて普及した
今ではその検索ルーチンを正規表現エンジンと呼ぶようになってしまい、
正規表現エンジンが受け入れる検索パターンを正規表現と呼ぶようになってしまった

なお、正規表現エンジンは元々の正規表現の意味では通常表現不可能なパターンすら検索する能力を持っている
もはや別物
345デフォルトの名無しさん:2014/02/27(木) 18:29:51.90
そう言えば折れも英単語解析のための正規表現みたいなものを作って使っていたなあ
ま、その後いわゆる正規表現に折れも一本化したけどな
346デフォルトの名無しさん:2014/02/27(木) 23:06:44.69
海外じゃもうregexと書くのが定着してる、というか定着させようとしてるね。
347デフォルトの名無しさん:2014/02/27(木) 23:16:15.70
>>346
じゃあs式も略すならpは余計だよね。
348デフォルトの名無しさん:2014/02/28(金) 00:48:01.57
S-exだね。
349デフォルトの名無しさん:2014/02/28(金) 05:41:22.87
>>348
じゃあ大文字とハイフンが必要ならReg-exだねって(オイ
350デフォルトの名無しさん:2014/03/01(土) 21:33:30.54
>>346
さりげなくregexpをdisらないで
351デフォルトの名無しさん:2014/03/05(水) 12:56:57.66
●Regular Expressionの使用環境
サクラエディタ

●検索か置換か?
置換

●説明
Exampleの文字列を含まない行を削除したい

●対象データ
ABCA Test
BCAA Example
CABA Abc

●希望する結果
BCAA Example


ネットで検索して出てきた^(?!.*Example).+$や^((?!Example).)*$
で試したんですが空行が残ってしまいました
352デフォルトの名無しさん:2014/03/05(水) 13:09:37.21
^(?!.*Example).+\r?\n?
353デフォルトの名無しさん:2014/03/05(水) 13:15:01.87
>>352
できました
ありがとうございました!
354デフォルトの名無しさん:2014/03/05(水) 20:10:58.23
$は改行の直前までしかマッチしないのがポイント
355デフォルトの名無しさん:2014/03/06(木) 14:13:12.95
後から出てきてさも知ったかのような口を利くのは>>354の(チャーム)ポイント
356デフォルトの名無しさん:2014/03/07(金) 04:25:15.64
誰も正規表現にツッコミ入れないけどみんなあえてスルーしてるんだろうな。
357デフォルトの名無しさん:2014/03/07(金) 06:11:48.79
希望する結果が逆なのは分かったけど、
ツッコミが必要な正規表現が分からない…出来れば教えてくれ。
358デフォルトの名無しさん:2014/03/07(金) 07:11:37.81
>Exampleの文字列を含まない行

空行もこれに該当するんじゃ?
359デフォルトの名無しさん:2014/03/07(金) 10:43:45.86
サクラエディタとしては、該当するものを""で置換して消すしかないからこーなるわけよ。
360デフォルトの名無しさん:2014/03/07(金) 10:53:01.11
後方参照の否定だっけ
否定の後方参照だっけ
後方参照をうまく使えると捗りそうだよね
いまいちパッと使えないorz
361デフォルトの名無しさん:2014/03/07(金) 11:46:51.76
>>356
お前恥ずかしい奴だな
362デフォルトの名無しさん:2014/03/07(金) 22:35:03.25
空行が消せないという仕様かスキルか知らないけどそれのほうが恥ずかしいのでは。
363デフォルトの名無しさん:2014/03/07(金) 22:44:29.69
今試してみたら普通に空行消せた。ということは・・(察し
364デフォルトの名無しさん:2014/03/07(金) 23:49:29.37
相当悔しかったんだな
365デフォルトの名無しさん:2014/03/07(金) 23:51:20.94
>>362-363
クスクス
366デフォルトの名無しさん:2014/03/08(土) 00:41:37.59
あれ?>>352で改行が消せるなら空行も消せるはずですね。
367デフォルトの名無しさん:2014/03/08(土) 14:35:23.35
>>359
何言ってんだこの馬鹿は。
368デフォルトの名無しさん:2014/03/08(土) 22:07:40.54
>>366
まだそんな間抜けな事を言っているの?
君だけだよ?
369デフォルトの名無しさん:2014/03/09(日) 01:07:09.32
耳の聞こえないふりの人みたいに逆ギレですかそうですか。
370デフォルトの名無しさん:2014/03/09(日) 17:54:46.52
掲示板なんだから耳が聴こえないかどうかは関係ないだろ
何言ってんだ
371デフォルトの名無しさん:2014/03/09(日) 17:56:38.66
俺はチンポ立たない振りして女連れ込んでる
入れちゃうとだいたいオーケー
372デフォルトの名無しさん:2014/03/09(日) 18:57:29.74
>>370
「みたいに」って書いてあるじゃん
この「耳の聞こえないふりの人」ってのは多分自称ベートーベンの痛い奴の事だよ
ゴーストライターに耳聞こえてることバラされて訴えるって意気込んでるらしいから

ゴーストライター以前にマスコミの取材中にも聞こえてる挙動してて今更なんだが
障害者手帳の不正入手の罪がバレるのはゴーストライターがバレるより怖いらしい
373デフォルトの名無しさん:2014/03/09(日) 22:09:42.25
こちらにも貼っておきますね

現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
374デフォルトの名無しさん:2014/03/10(月) 00:48:00.39
ID表示されるようになったらスレタイ変えたメンヘラ男子が困りそう。
375デフォルトの名無しさん:2014/03/11(火) 17:40:04.71
>>371
これまじ?
376デフォルトの名無しさん:2014/03/11(火) 18:57:52.90
>>375
もちろんマジ
377デフォルトの名無しさん:2014/03/11(火) 19:00:37.92
うわぁー、たった!どうして?

きみを、みてたら、心があつくなって
体があつくなって

,,,,,,よしこさん!
とだきつく

あとは、まずオッパイもみもみ
下にてをのばし

あとは自分で判断しろ
378デフォルトの名無しさん:2014/03/12(水) 17:16:31.95 ID:6zBbVI2I
●Regular Expressionの使用環境
秀丸

●検索か置換か?
置換

●説明
複数行の空行を1つの空行にしたい

●対象データ





●希望する結果
379378:2014/03/12(水) 17:19:09.32 ID:6zBbVI2I
検索
^\n+

置換
\n

これだと置換されない。
380デフォルトの名無しさん:2014/03/12(水) 17:26:30.29 ID:iuIDUWkr
>>379
その環境は知らないけど、^があるのに$がなくて\nって変じゃないか。
単に\n+じゃダメなの。
381デフォルトの名無しさん:2014/03/12(水) 17:38:06.82 ID:Qvoh4cG3
秀丸の改行へのマッチには制約があるよ。ググるか説明書読んで。
382デフォルトの名無しさん:2014/03/12(水) 20:35:10.49 ID: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ワード指定される
383デフォルトの名無しさん:2014/03/12(水) 20:44:53.82 ID:iuIDUWkr
384デフォルトの名無しさん:2014/03/12(水) 21:14:52.82 ID:9jZOtDPU
>>383
すいません。できませんでした。
htmlタグでもう一度作れますか?
できなければ諦めます
385デフォルトの名無しさん:2014/03/13(木) 00:04:20.91 ID:xoYJgDxQ
>>384
htmlタグって?
正規表現にチェック入れてないだろ。
386デフォルトの名無しさん:2014/03/13(木) 06:58:56.57 ID:1OBNO3pg
/.*/ じゃダメ。誤爆する。
387386:2014/03/13(木) 07:15:45.44 ID:1OBNO3pg
ttp\:\/\/www\d+\.atwiki\.jp\/[\!\#-\&\(-\.0-\;\=\?-\[\]-\~]+\/

これでいいのかな?2chMateとやらの正規表現エンジンの仕様が
分からないから怪しい文字全部にエスケープ付けといた。

あと調べたところ古いバージョンでは正規表現の先頭に / を付ける必要があるらしい。
動かない場合は試してみて。
388デフォルトの名無しさん:2014/03/13(木) 07:29:23.49 ID:2a19jPZt
>>385
チェック入れてますよ
>>387
ありがとうございます。できました。
389デフォルトの名無しさん:2014/03/13(木) 08:26:35.42 ID:xoYJgDxQ
>>388
2chMate 0.8.6/SHARP/SH-13C/2.3.4/DR では問題なかった
390デフォルトの名無しさん:2014/03/13(木) 08:30:17.94 ID:2a19jPZt
>>389
387なら出来ましたよ
391デフォルトの名無しさん:2014/03/13(木) 08:30:41.83 ID:xoYJgDxQ
>>386
NGなんだから、厳密にする必要もない。面倒だから適当にしただけ。
392デフォルトの名無しさん:2014/03/13(木) 08:35:07.76 ID:xoYJgDxQ
>>390
基本的なとこは包括されてるから、コピペミスってるか、ttpか、多分丸投げだからJavaの正規表現の解釈が変わったか。
アプリ開発してたけど、そういう話は知らないなぁ。
393378:2014/03/13(木) 08:41:19.60 ID:2EBFZUmq
>>380
\n+だけだと空行以外の文字列の最後にもヒットしてしまいます。

>>381
すみませんヘルプに書いていました。
ありがとうございます。
(?#maxlines:50)^\n+
で置換することができました。
394381,386 ◆QzqhRqBYxktP :2014/03/13(木) 09:50:43.55 ID:1OBNO3pg
>>392
おそらくh抜き。datには<aタグが入らない板もあるからね。
/.*/ のとこは無くてもいいくらいだね、ハッキング事件のセキュ対応なんだろうし。

>>388>>393
^−^b
395デフォルトの名無しさん:2014/03/14(金) 09:55:55.35 ID:zoiay4j6
●Regular Expressionの使用環境
JavaScript

●検索か置換か?
置換

●説明
同じ文字の4回以上の繰り返しを3回にしたい

●対象データ
ああああああああああああああああああいいいいいいいいいいいいいいいうえおおおおおおおおおおおおおお

●希望する結果
あああいいいうえおおお
396デフォルトの名無しさん:2014/03/14(金) 10:00:26.17 ID:Mhqkzd/y
検索
(.)\1{3,*}

置換
$1$1$1
397395:2014/03/14(金) 11:12:05.63 ID:zoiay4j6
>>396
(.)\1{3,*}だとなぜか上手くいかなかったけど(.)\1{3,}でできました
ありがとうございました
398デフォルトの名無しさん:2014/03/14(金) 16:48:20.08 ID:Mhqkzd/y
あ、{3,*} は別の環境(proxomitron)の書式だった。ごめんね。
399デフォルトの名無しさん:2014/03/14(金) 23:51:23.33 ID:YZlgvtQG
正規表現の文字コード順について質問したいのですが
1行内に沢山文字があって、それを正規表現で検索ヒットさせるんですけど
正規表現は重いから、なるべく、あらかじめ文字コード順に直しておいたほうが良いという事を聞きました
数が膨大になっていけば、バカにならないので、一度全文文字コード順にソートしてみて、正規表現の検索の時間が
どれくらい軽くなるのか試してみようと思うのですが

そこで、文字コードにはShiftJIS等あるそうで、それらによって文字の並び方が違う、らしいのですが
どれが良いのか全く分かりません、それに正規表現にも種類があるのでしょうか

稚拙な質問ですみません、何か質問自体に大きな間違いがあれば、それについても御指摘ください
400デフォルトの名無しさん:2014/03/14(金) 23:58:33.54 ID:jnh1VUPi
> なるべく、あらかじめ文字コード順に直しておいたほうが良いという事を聞きました

どこで?

文字コード順にソートできる事例なんて
ほぼないだろ?
401デフォルトの名無しさん:2014/03/15(土) 00:18:44.37 ID:Q3mCogqK
ヒット率でならわかるけど文字コード順てイミフ
402デフォルトの名無しさん:2014/03/15(土) 00:32:00.47 ID:CF1cuZUb
>>399
もしかして特定の一文字を数えるのに正規表現を使おうとしてる?
そりゃあ正規表現は重すぎるだろうし一文字ずつソートしたほうが速いだろうね。

何がしたいの?
403デフォルトの名無しさん:2014/03/15(土) 15:22:34.65 ID:YATV051M
>>399
例文もなしに文字コード順とか言われてもイミフ
しかも文字コードの知識すらなさそうだけど、
\xnnnnや\unnnn(nは文字コード値)とかの
の文字コード直接指定の正規表現を使わない限りは
文字コードを意識する必要なんてほぼないよ
404デフォルトの名無しさん:2014/03/15(土) 15:30:32.85 ID:tYn4Fm5x
エスパーの俺が解説してあげよう。

配列の中からある値をサーチするときは
配列を文字コード順でソートしていれば速いんだよ。

ところでだな。正規表現は
文字をサーチするために使うんだよ
405デフォルトの名無しさん:2014/03/15(土) 17:18:45.26 ID:hD2AtX1A
傘スレが役に立ってる
406デフォルトの名無しさん:2014/03/15(土) 18:18:58.17 ID:uGEDgr8/
>>400-405
自分でも何言ってるのかさっぱり分かりません
それなのに質問してごめんなさい

> \xnnnnや\unnnn(nは文字コード値)とかの
> の文字コード直接指定の正規表現を使わない限りは
> 文字コードを意識する必要なんてほぼないよ
極単純な正規表現しか知らないものですから、一から勉強します
ありがとうございました
407デフォルトの名無しさん:2014/03/16(日) 09:19:28.06 ID:xU+OWlTt
>正規表現は重いから、なるべく、あらかじめ文字コード順に直しておいたほうが良い

こう言ってた人に真意を聞くのが筋でしょう。
たぶんこれを言った人も違う意味で言ったんだと思いますが。
408デフォルトの名無しさん:2014/03/16(日) 18:15:16.01 ID:TS+hDRL9
>>403
いや[亜-熙]みたいな範囲指定する場合はモロに影響する
ちゃんとキャラクタクラスなどを使えば問題はないのだが、
今度は使えるクラスが文字コードによって異なるっていう…
409デフォルトの名無しさん:2014/03/26(水) 22:18:12.16 ID:vsO28NG4
てすてす
410デフォルトの名無しさん:2014/03/27(木) 06:17:49.40 ID:iCbpA3l5
>>4 板移転↓

正規表現道場 Part2
http://nozomi.2ch.net/test/read.cgi/php/1348048723/l50
411デフォルトの名無しさん:2014/03/29(土) 00:31:17.46 ID:2x5p0G/E
>>410
うん、わかった。覚えてたらな。
412デフォルトの名無しさん:2014/04/12(土) 13:28:47.34 ID:4XenY3RD
@abc
にはマッチしないで

@abcabc

@abcdef

にはマッチさせるにはどのように記述したら良いでしょうか?
413デフォルトの名無しさん:2014/04/12(土) 13:50:15.31 ID:U3ze+O2N
>>412
>>2のように記述したらいいと思うよ。

@abc(abc|def)
414デフォルトの名無しさん:2014/04/12(土) 14:11:47.17 ID:4XenY3RD
>>413
レスありがとうございます
後出し条件になってしまい大変申し訳ないですが

@abc の後に続く文字列は[0-9a-zA-Z]が連続したものです

例えば
@abcaaa @abcjoioho @abcvvvud
にはマッチして

@abc のみにはマッチしないように記述したいです

申し訳ありませんがもう一度ご教示頂きたいです。よろしくお願いします
415デフォルトの名無しさん:2014/04/12(土) 14:14:15.07 ID:4XenY3RD
更に追記させて下さい

@defghij @jijoaa @hogehoge

などの文字列にもマッチさせたいです

何度も投稿してしまい本当に申し訳ありません
416デフォルトの名無しさん:2014/04/12(土) 15:19:18.59 ID:s4x1CSLN
>>414
> @abc の後に続く文字列は[0-9a-zA-Z]が連続したものです

そのまま書けばええやん
@abc[0-9a-zA-Z]+

>>415
何をしたいのかよくわからんけど、@[0-9a-zA-Z] として、アプリ側で @abc を弾いた方がいいんじゃね?
417デフォルトの名無しさん:2014/04/12(土) 15:21:49.29 ID:s4x1CSLN
>>416
typo したわ

× @[0-9a-zA-Z] として
○ @[0-9a-zA-Z]+ として
418デフォルトの名無しさん:2014/04/12(土) 20:05:08.80 ID:ngoF8pDl
.NET2.0 System.Text.RegularExpressions.Regex;

検索です。
<p><a href="http://example.com"></p>
<a href="http://example.com">

このようなデータから、pタグに囲まれているexample.comのみを抜き出したいのですが、
一旦pタグごと抜き出してあとからreplaceするしかないのでしょうか?
419デフォルトの名無しさん:2014/04/12(土) 20:41:47.82 ID:rlCwOjmw
>>414>>415
@(?!abc)[0-9a-zA-Z]+
420デフォルトの名無しさん:2014/04/12(土) 23:00:03.30 ID:U3ze+O2N
>>418
xpathで一発。
と思ったが、a閉じてないし無理か。
その初めて見るデータの仕様がわからないと、どうしようもない。
421デフォルトの名無しさん:2014/04/12(土) 23:50:11.34 ID:jMhZwQAt
>>419
これだと
@abcabc
@abcdef
にはマッチしないか
422デフォルトの名無しさん:2014/04/12(土) 23:50:28.43 ID:75P4fa7h
こっちに書いたらscにも反映されちゃうのか、こっちをちらしの裏にしようと思ったのに。
423デフォルトの名無しさん:2014/04/13(日) 00:33:19.28 ID:yqZVS2ZT
test
424デフォルトの名無しさん:2014/04/13(日) 07:57:10.90 ID:Dl/ggmgg
一番内側のインライン要素は別に閉じる必要ないんじゃないっけ
425デフォルトの名無しさん:2014/04/13(日) 11:58:54.95 ID:wSq/pgWA
>>424
html はそこら辺アバウトだったから
xhtml では xml に合わせたから、解析しやすくなるはずなんだが、アバウトなままのサイトが一杯あるから苦労は変わらないままだったりする
426デフォルトの名無しさん:2014/04/13(日) 16:31:19.64 ID:9NN4C2hO
>>426
省略可能な奴はちゃんと定義されててアバウトじゃないんだけど、
流通してるHTMLとWebブラウザの実装がアバウトってだけだよ。
最近話題になったやつだと2ch。scの告知画面tinyurl。com/pjstnp7
はbodyタグのオープンとか省略しているけどW3Cの検証機を通る。
# エンコーディング周りはHTTPヘッダで回答してればセーフだし。

どこでこの話聞いたんだっけ・・・
427デフォルトの名無しさん:2014/04/13(日) 16:44:43.25 ID:CQggOOXO
スラドで見かけた
428デフォルトの名無しさん:2014/04/14(月) 06:01:26.20 ID:x8/AYQxN
あー、やっぱスラドか。一応ググったつもりだったんだがなぁ…
http://it.slashdot.jp/comments.pl?sid=627849&cid=2574373
そしてスラドのこんな記事の話題をこんなスレで振って返事があるとかびっくりだ。さんきゅ
429デフォルトの名無しさん:2014/04/14(月) 07:43:22.83 ID:HpK6ptq4
どうみても ./ と 2ch は住民かぶってるだろ
430デフォルトの名無しさん:2014/04/14(月) 08:06:33.60 ID:DuPxyPL7
ドッスラはカレントディレクトリなんだよなあ
431デフォルトの名無しさん:2014/04/14(月) 09:13:38.05 ID:HpK6ptq4
/. の pyto やね
432デフォルトの名無しさん:2014/04/14(月) 22:47:36.55 ID:qpVJ3EkT
なんでそう何度も前後逆になるんだ?
Intel厨?(little endian)
433デフォルトの名無しさん:2014/04/15(火) 13:46:45.24 ID:WaetxQT9
前後で考えるから逆だと思うわけで
高低で考えると逆じゃない
434デフォルトの名無しさん:2014/04/19(土) 15:08:30.61 ID:I0Tv5INM
ひまわりの肥料って何がいいですか?
435デフォルトの名無しさん:2014/04/21(月) 10:46:09.60 ID:epNqpaJy
●Regular Expressionの使用環境
サクラエディタ 2.1.1.1

●検索か置換か?
置換

●説明
[]内の文字だけにしたい
※ [ と ] と (半角スペース)の3つを消したい

●対象データ
[あいうえお] ←最後に半角スペースあり(以下同じ)
[カキクケコ]
[AIUEO]
[漢字等々]

●希望する結果
あいうえお←最後の半角スペースも消したい(以下同じ)
カキクケコ
AIUEO
漢字等々
436デフォルトの名無しさん:2014/04/21(月) 12:03:19.19 ID:3tZdYhCV
>>435
置換対象
[(.*) ]

置換後
$1
437デフォルトの名無しさん:2014/04/21(月) 12:10:07.08 ID:3tZdYhCV
すまんエスケープしないとダメだな
あとスペースの位置まちがってた
『』の中

置換対象
『\[(.*)\] 』

置換後
『$1』
438デフォルトの名無しさん:2014/04/21(月) 12:44:34.05 ID:EHF6HnLR
sakuraテキストエディタを使用しています。
20行くらいの文字列があります。
それぞれの行の、前後にabcとefgを追加したいです。
abc元の文字列efg
検索文字
(^*$)
置換え文字
abc\1efg
これを実行すると、元の文字列abcefgと各行に追加されます。
どのように正規表現を書けばいいか教えてください。
439デフォルトの名無しさん:2014/04/21(月) 13:12:33.14 ID:7sVNkmyi
検索文字
^(.+)$
置換
abc\1efg
440デフォルトの名無しさん:2014/04/21(月) 13:38:17.94 ID:3tZdYhCV
サクラには始点挿入と終点追加の機能もあるんやで
441デフォルトの名無しさん:2014/04/21(月) 14:49:46.24 ID:EHF6HnLR
>>439
できました!!
ありがとうございます。

>>440
そんな機能もあったんですね、調べてみます。
442デフォルトの名無しさん:2014/04/24(木) 17:52:09.55 ID:V1UpyXxT
挿入!
ヤラシイ
443デフォルトの名無しさん:2014/04/25(金) 20:18:46.86 ID:JH0TWYKX
秀丸エディタの正規表現

「改行を含む0文字以上の任意の文字列」 を指定するにはどうしたら良いでしょうか?

.+

だと改行が含まれません。
対処法を教えて下さい・・・・
444デフォルトの名無しさん:2014/04/25(金) 20:42:22.63 ID:GDJFN5mS
\r\n
445デフォルトの名無しさん:2014/04/25(金) 20:48:34.44 ID:JH0TWYKX
>>444
すいません上手く行きません。

[\.\n]+
[\s\S]+

これでもダメです。
446デフォルトの名無しさん:2014/04/25(金) 21:06:21.53 ID:JH0TWYKX
訂正。
[.\n]+
これでもダメ。

[\S\s\n]+
これだとマッチしたりしなかったり。
挙動がよく分かりません。
447デフォルトの名無しさん:2014/04/25(金) 21:48:48.71 ID:BpGWRq7/
ヘルプの
目次− 検索系コマンド− 正規表現− \nを使った複数行検索の際の制限について

秀丸で改行を含む正規表現はうまくいかないのであきらめよう
448デフォルトの名無しさん:2014/04/25(金) 21:57:52.26 ID:JH0TWYKX
秀丸エディタスレに移動します。お邪魔しました。
449デフォルトの名無しさん:2014/04/25(金) 21:59:23.54 ID:JH0TWYKX
>>447 アドバイスありがとうございました。
450デフォルトの名無しさん:2014/04/26(土) 15:24:01.32 ID:FDgGm5F+
Win7に入れたcygwinで、以下のようなテキストファイル

いろんな文字Text11いろんな文字
いろんな文字Text215いろんな文字
いろんな文字Text351いろんな文字
...

から
Text11
Text215
Text351
を取り出したいのです。
をgrepやsedでトライしたのですが、分りません。
よろしく。
451デフォルトの名無しさん:2014/04/26(土) 15:48:21.91 ID:bHDNIx6I
>>450
てきとーだけど
sed 's/^.*\(Text[0-9]*\).*$/\1/'
452デフォルトの名無しさん:2014/04/26(土) 16:09:16.64 ID:FDgGm5F+
>>451
ありがとうございます。出来ました。
453デフォルトの名無しさん:2014/04/26(土) 17:58:23.86 ID:7YL+swb1
grep -o Text[0-9]*
の方が楽でない
454デフォルトの名無しさん:2014/04/26(土) 18:56:42.33 ID:FDgGm5F+
>>453
ありがとうございます。こんな技があったとは。。。素晴らしい。
455デフォルトの名無しさん:2014/04/26(土) 23:18:57.81 ID:VGAf199r
456デフォルトの名無しさん:2014/05/07(水) 18:40:40.37 ID:a4cm40Cx
●Regular Expressionの使用環境
Emeditor(正規表現エンジン:Perl)

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
評価良い
評価悪い
評価ふつう


●希望する結果
”評価良い”の ”評価” と
”評価悪い”の ”評価” はヒットさせず、
”評価ふつう”の ”評価” のみヒットさせたいです。
457デフォルトの名無しさん:2014/05/07(水) 18:41:19.38 ID:a4cm40Cx
>>456の続きです

下の検索ワードで個々に正規表現検索すると、
評価(?!良い)
評価(?!悪い)

評価(?!良い) で検索すると、
評価悪い
評価ふつう

上の行の”評価”がヒットし、

評価(?!悪い) で検索すると、
評価良い
評価ふつう

上の行の”評価”がヒットします。


評価(?!良い)|評価(?!悪い) で検索すると、
評価ふつうの”評価”のみヒットさせていたのですが、

評価良い
評価悪い
評価ふつう

上の3行全ての”評価”がヒットしてしまいます。

評価ふつうの”評価”のみヒットさせるにはどのようにすれば良いでしょうか。
お分かりの方おりましたら、アドバイス頂けるとうれしいです。よろしくお願いします。
458デフォルトの名無しさん:2014/05/07(水) 21:20:41.89 ID:bY3JnOhr
>>457
評価(?!良い|悪い)
評価(?!良い)(?!悪い)
459デフォルトの名無しさん:2014/05/07(水) 22:51:13.63 ID:N+3a4ufs
Perlって(?=)使えないの?
それにしても説明文章ヘタクソだな
460デフォルトの名無しさん:2014/05/07(水) 23:10:01.42 ID:QGVowAzN
>Emeditor(正規表現エンジン:Perl)
とか言ってる時点で・・・
Emeditorの正規表現はBoost Regex++や
461デフォルトの名無しさん:2014/05/08(木) 00:29:38.20 ID:ZNqlRNij
>>458さん
ありがとうございます。試させて頂いたところマッチしました。
そのような書き方になるのですね、とても参考になりました。

文章長くなってスミマセン。
"EmEditor は、Perl の正規表現構文に基づいています"と記載があったので今までPerlだと思ってました。。
確認しましたらBoost Regex++でした。。
462デフォルトの名無しさん:2014/05/08(木) 04:50:15.85 ID:XccdVftY
否定先読みが使えて肯定先読みが使えない、なんて環境は有り得ないだろ

評価(?=ふつう)

でええやん
463デフォルトの名無しさん:2014/05/10(土) 02:21:54.85 ID:8U9D7Dh6
>>459,462
すいません遅くなりました。そのような書き方もあったのですね。
試してみたところ正常に動作しました。とても参考になります、どうもありがとうございます。
464デフォルトの名無しさん:2014/05/10(土) 10:51:15.57 ID:OuDEqY/x
●Regular Expressionの使用環境
Textmate

●検索か置換か?
置換

●説明
行末尾から最初に現れるスペースまでを検索し、置換によって該当文字を削除したい

●対象データ
A B C A
B CA A
CAB A
ABC

●希望する結果(各行の末尾にスペースは存在しない)
A B C
B CA
CAB
ABC


よろしくお願いします
465デフォルトの名無しさん:2014/05/10(土) 15:29:19.68 ID:bpNAt6b2
TextMate Manual ≫ 正規表現
http://manual.macromates.com/ja/regular_expressions

正規表現のルールはこちらです、よろしくお願いします。
466デフォルトの名無しさん:2014/05/10(土) 16:22:48.29 ID:bpNAt6b2
>>455
バッチリでした!ありがとうございました!
467デフォルトの名無しさん:2014/05/10(土) 19:08:45.30 ID:9WYsc5/z
>>464
置換前先頭には半角スペースあり

置換前:
[^ ]+?$

置換後:
空欄
468デフォルトの名無しさん:2014/05/11(日) 06:17:56.60 ID:cMjkQ9rh
●Regular Expressionの使用環境
sed、grep
●検索か置換か?
置換
●説明
マッチした結果をそのまま置き換えるでなく、
1つ前に改行を入れたい。

●対象データ
0ABC1DEF2GHI3JKL4MNO

●希望する結果
0ABC
1DEF
2GHI
3JKL
4MNO

よろしくお願いします。
469デフォルトの名無しさん:2014/05/11(日) 06:49:33.52 ID:gqNJJWlw
>>468
マッチ条件を書けよ
どうせ任意の4文字、じゃないんだろ?
470デフォルトの名無しさん:2014/05/11(日) 07:34:32.90 ID:AcT6QrMV
想像するに、先頭が連番となる数字で始まるじゃないか?
単なる数字で始まるならまだしもだけど
471デフォルトの名無しさん:2014/05/11(日) 07:47:35.54 ID:5Cvu+VTD
>>468
sedはわかるけど、grepコマンドで置換ってどういうこと?
472デフォルトの名無しさん:2014/05/11(日) 10:34:42.59 ID:1lidwdFw
<検索>
(検索キーワード)

<置換>
$1\n

みたいな意味でないかな。ようは置換後に改行を入れるやり方が知りたいと。
473デフォルトの名無しさん:2014/05/11(日) 22:45:24.09 ID:/w7Xo6bZ
C++である変数valでコメントにされていない箇所を検索したい

マッチしてほしい
val=0; // 〜〜〜〜


マッチしてほしくない
// val=1;
  // val=1;
474デフォルトの名無しさん:2014/05/11(日) 22:56:17.34 ID:zdamCAAu
>>473
Visual Studio とかで検索した方がいいんじゃないか?
475デフォルトの名無しさん:2014/05/12(月) 00:30:36.67 ID:7jCCFS46
C++である変数valでコメントにされていない箇所を検索したい

マッチしてほしい
val=0; // 〜〜〜〜


マッチしてほしくない
// val=1;
  // val=1;
476デフォルトの名無しさん:2014/05/12(月) 03:34:07.70 ID:gfHEQtpm
>>475
IDEを使って、変数の参照機能を利用すると良い。
477デフォルトの名無しさん:2014/05/12(月) 11:30:42.85 ID:ZtmTFQ/l
こういう需要があるのは知ってるがスレチだろう
昔Cで書いたときは使い物にならなくて条件コンパイルの入れ子まで対応したw
478デフォルトの名無しさん:2014/05/12(月) 12:43:12.46 ID:3gM4pAJ7
俺も背面跳び逆さダブルコンパイルまで対応した。時間軸が合わないからここには貼れないけどね。
479デフォルトの名無しさん:2014/05/12(月) 17:50:14.54 ID:wdXrAHxM
>>468
ふたつ疑問。
一つは既に出ているように検索条件。数字一文字でよいのか?
二つ目は文字列の先頭に現れる数字に対しては改行を挿入しないという解釈でよいのか。
480デフォルトの名無しさん:2014/05/12(月) 21:04:37.03 ID:gfHEQtpm
>>475みたいなのは正規表現でやるもんじゃないよね。
意味を知らないと正確にマッチできないのだから
意味を解釈できるツール、たいていはIDEになると思うけど
そういうのを使わなきゃ。
481デフォルトの名無しさん:2014/05/13(火) 15:31:48.19 ID:KOwQUUXj
荒らすための質問はスルー
482デフォルトの名無しさん:2014/05/14(水) 03:00:27.44 ID:JxeTIG1R
スルーの強要は荒らし
483デフォルトの名無しさん:2014/05/14(水) 04:59:25.29 ID:zBp780AK
次スレ

正規表現道場 Part2
http://akiba.geocities.jp/hp20140401/goto_sc.html
484デフォルトの名無しさん:2014/05/15(木) 00:55:52.66 ID:0gQNXHoC
>>483
面白そう。DANより早いコード作ろうか。
485デフォルトの名無しさん:2014/05/15(木) 02:56:08.49 ID:3O8Jckao
ミスって.scでレスしちまった・・・

>>483
わざわざブラウザでしか見れないジャンプページ挟んで広告費稼ぐとか下衆くて不便な誘導はヤメレ
ttp://nozomi.2ch. sc/test/read.cgi/php/1348048723/
でいいだろ
486デフォルトの名無しさん:2014/05/15(木) 03:17:29.59 ID:0gQNXHoC
女 「アフィなんてないよ!」

あれはジオが出してる広告。ソース見れば分かるよ。
そもそもこんな過疎スレでアフィなんてやっても年100円いくかどうかでは。
487デフォルトの名無しさん:2014/05/15(木) 04:10:09.30 ID:3O8Jckao
>>486
そうだったか、すまん。でもページランク稼ぎじみてて不便なのは変わらん。
488デフォルトの名無しさん:2014/05/16(金) 01:07:46.28 ID:/OuuLVDF
ブラウザでないというと何で見てるの?
クリックで辿り着けるほうが半角スペ消して繋げるより便利でね?
広告がうざかったらadblockとかで。jsで出さなくも出来るけどまんどくせ。

>ページランク
それが狙いならそこら中にURL貼るわな。まぁそんなに警戒しないでくれよんぴる。
489デフォルトの名無しさん:2014/05/16(金) 07:30:43.48 ID:z+fBbvw1
今の時点でscへ行く人まずいないんじゃあるまいか?
なぜにscへ誘導?
490デフォルトの名無しさん:2014/05/16(金) 08:02:21.58 ID:/OuuLVDF
小飼 弾が手負いのうちに容赦なくツッコミを入れておく : せいきなんとか
http://akiba.geocities.jp/hp20140401/2014/006.html

↑誰かツイッターで弾に特攻して。

>>489
sc 、 open2ch のNGワード。 ← 中国並みの言論統制
連投規制なし。 ← ちらしの裏に最適

実のとこそれほど誘導するつもりはない。むしろ人が増えるとちらしの裏にしにくくて困る。
ただ正規表現にガチな人が何人かいるとありがたかったり。間違いを教えてもらえるからね。
491デフォルトの名無しさん:2014/05/17(土) 09:47:21.78 ID:7hm1D3vf
>>488
> ブラウザでないというと何で見てるの?
Webブラウザと書くべきだったな。すまん。
> クリックで辿り着けるほうが半角スペ消して繋げるより便利でね?
それとドメイン名に半角スペースは使えないからJaneStyleとかだとスペース付きのままでも飛べるし、
半角スペース入れずにピリオドを句読点に変換しておいても国際化ドメインに対応してれば飛べる。
そもそも専ブラで読む気なら半角スペース消してすら、Webブラウザの応答待ってコピペするより速い。
> まぁそんなに警戒しないでくれよんぴる。
ゴメン無理。だってSEO意識しまくってるじゃんか。事ある毎に宣伝してるしそういう風にしか見えないよ。
>> http://nozomi.2ch。sc/test/read.cgi/php/1348048723/169
>> ググりやすさ重視の名前にしました。「正規表現」の書きにくさを回避。
>> 検索でも他サイトと被りそうにないし。
492デフォルトの名無しさん:2014/05/17(土) 14:40:00.41 ID:+edCn2/r
>>491
おk、専ブラで見てるってことか。

範囲選択 → 右クリ → 「選択範囲をURLとして開く」

・・DANE。 なるほど、半角スペ消さなくても飛べるね。
しかし普通のブラウザで見に来てる人にはそうはいかんのだよ。そういう人用のリンクなわけだが・・。

>SEO
ああ、それは他のサイトと被らない名前にすることで検索結果の一番上に出そうって話だよ。
1つしかヒットしない名前にすれば一番上になるだろって話。どうやら失敗したっぽいけどね・・orz
クルマメーカーが 「車」 で検索されたときの順位を一位にするべく行うSEO対策とは違う。

まぁそんなに警戒する人は無理に来なくてもいいよ、異常に怖がって足がすくんで先に進めないような人より
広告だろうがSEO対策に利用されようが気にすることなく貪欲に情報を求めにくる人に来て欲しい。
493デフォルトの名無しさん:2014/05/17(土) 21:36:10.71 ID:+edCn2/r
ちなみに >>3 の正規表現パズルもジオだから同じ広告が出るのを確認出来る。
って、今年の3/1に更新されてるね。まだ現役だったのかw
494デフォルトの名無しさん:2014/05/18(日) 23:11:17.27 ID:vFp/InUl
1時間調べたけどギブアップ。

秀丸で
連続しない改行は★に置換。
連続する改行は何もしない。

どう記述すれば良いでしょうか!


検索文字列 → \n([^\n])
置換文字列 → ★\1
これだと連続する改行の末尾でマッチしてしまうのでNGです。
495デフォルトの名無しさん:2014/05/19(月) 00:38:57.93 ID:6okFS6t5
(?<!\n)\n(?!\n)

でダメなら知らね。
496デフォルトの名無しさん:2014/05/19(月) 17:45:35.18 ID:ByfTztcE
>>495
『HmJre.dllの正規表現での前方一致/不一致"(?<!xxx)","(?<=xxx)"では改行文字を使うことができません。
かまわずに続行しますか?』

こういう警告が出るけど、一応出来ました!
ありがと!
497デフォルトの名無しさん:2014/05/20(火) 21:53:50.27 ID:yBFoziSg
詳説 正規表現 第3版 の誤植 ( 日本語版 / 初版第1刷 ) : せいきなんとか
http://akiba.geocities.jp/hp20140401/2014/007.html
498デフォルトの名無しさん:2014/05/22(木) 22:54:50.17 ID:cKOVk0RX
>>467
返事とても遅くなりました
助かりました
ありがとうございます
499デフォルトの名無しさん:2014/05/23(金) 16:19:14.53 ID:M32fb6pL
てs
500デフォルトの名無しさん:2014/05/25(日) 00:46:30.08 ID:fP8zkgQw
"正規表現メモ" のメモ : せいきなんとか
http://akiba.geocities.jp/hp20140401/2014/008.html

連投規制が解けないのでsc見限りました・・。
501デフォルトの名無しさん:2014/05/25(日) 01:32:03.34 ID:ILOCnL5n
ここにエジプト民の居場所なんかねえよ
502デフォルトの名無しさん:2014/05/25(日) 01:41:37.24 ID:fP8zkgQw
ああ、もしかして sc = アフィ厨 と思われたのかな。アフィなんかに興味無いんで。
というか1日10アクセスのサイトでアフィなんかやってたらアホだわ。

おそらく正規表現メモや雑技たんのアフィでさえ雀の涙も儲かってないはず。
正規表現を調べに来たような奴がアフィ踏むわけないって。
503デフォルトの名無しさん:2014/05/26(月) 11:23:37.93 ID:T5nGq6IH
こいつ馬鹿だ
504デフォルトの名無しさん:2014/05/26(月) 12:08:22.37 ID:ptXAqcmg
「 2ch (ドット) sc 」 って書き込み出来ないワードなんだなω
スペース空けてても拒否されたωωω
505デフォルトの名無しさん:2014/05/26(月) 12:34:16.85 ID:LnM16LwK
2ch. sc
506デフォルトの名無しさん:2014/05/27(火) 19:07:51.35 ID:vDTcjh58
2ch.sc
open2ch.net
machi.to
sakura.ne.jp
507デフォルトの名無しさん:2014/06/03(火) 17:18:14.82 ID:Bzx3XwCm
●Regular Expressionの使用環境
秀丸

●検索か置換か?
置換

●説明
行の一番最後の全角文字から後を削除したい。

●対象データ

東京 abc 大阪静岡 123 名古屋 apple orange


●希望する結果

東京 abc 大阪静岡 123 名古屋


宜しくお願いします。
508デフォルトの名無しさん:2014/06/04(水) 02:16:44.71 ID:25eHsuea
検索文字
(.+[^ -゜]).+$
置換
\1
509デフォルトの名無しさん:2014/06/04(水) 02:53:24.09 ID:BVzfB4Fw
>>508
望み通りの事が出来ました!! 有難うございます。
教えて頂いた書式の意味を勉強して、応用ができるようにしたいと思います。
本当に有難うございました。
510デフォルトの名無しさん:2014/06/06(金) 03:41:15.02 ID:fLlNLsWw
●Regular Expressionの使用環境
.NET

●検索か置換か?
検索

●説明
詳説正規表現第2版のCSV処理の正規表現
(?:^|,)(?:"((?>[^"]|"")*)"|([^",]*))
これでは一番目の値が空の場合、2番目の値が取得できなくなります。
後方のカンマでマッチさせるよう (?:^|,) を (?:$|,) にすると
(?:"((?>[^"]|"")*)"|([^",]*))(?:$|,)
となりますが、今度は最後に余計な空のマッチが発生してしまいます。

プログラムを使って解決はできるのですが、正規表現だけで両方の
問題を解決できる方法はありますでしょうか。
511デフォルトの名無しさん:2014/06/06(金) 05:03:28.72 ID:DhW11ZOH
なんかどっちも正規表現じゃなくて正規表現の使い方で起きてる問題な気もするけど…
どっちかというと""で括られた,区切りの部分に誤爆しかねない事の方が気になるわ。

とりま1回マッチ取る毎に検索再開位置を+1でもして、文字列超超えたら終了しとけ。
512デフォルトの名無しさん:2014/06/06(金) 05:38:23.63 ID:89LsrRqj
>>510
perl5.14.2では問題なくキャプチャ出来てる。
.NETでは最初のマッチに成功したらミッションが1歩進んでしまうんだろうね。

正規表現テスター (Flash ActionScript3.0)
http://1st.geocities.jp/neeetest/as3_regexp.html

このテスターでは2つ目がマッチしない現象が再現出来た。
ここでは (?:^|(?<=,)) とすれば上手く動くようだ。
513デフォルトの名無しさん:2014/06/06(金) 08:12:07.27 ID:DhW11ZOH
ああ、(?<=^|,)って書いてあるもんだと勘違いしてたわスマン。
(?:^|,)で、1項目目が0文字だと1項目目と2項目目の開始位置が同一になるならそりゃ駄目だわ。
だが開始位置が0文字目同士って扱いになるなら初回が最長マッチ(2項目目)にならないってのはどーなんだ…
514デフォルトの名無しさん:2014/06/06(金) 09:44:53.07 ID:89LsrRqj
>最長マッチにならない

詳説正規表現を読んでいればそういうセリフは出てこないはずなんですが・・。
515510:2014/06/06(金) 15:00:43.52 ID:fLlNLsWw
>>512
> .NETでは最初のマッチに成功したらミッションが1歩進んでしまうんだろうね。
こちらの仕様は言語を問わず0文字にマッチした場合、延々と0文字にマッチし続けないために1歩進むもの
だと思っていました。

> ここでは (?:^|(?<=,)) とすれば上手く動くようだ。
こちらのパターンでいろいろ試してみましたが、全て上手くいきました。ありがとうございました!
私も戻り読みは考えたのですが、後続のグループで消費されないカンマの処理が必要になるかと思い込んで
あきらめてしまいました。。。
516デフォルトの名無しさん:2014/06/06(金) 17:20:11.54 ID:89LsrRqj
>>515
1番目のマッチと2番目のマッチは同じ位置でも違う結果になるから
perlはループではないと判定する、というのをどこかで読んだような。
517デフォルトの名無しさん:2014/06/06(金) 17:27:48.95 ID:IK3e9ito
よく読んでないけど名前付ければいいじゃん>>510
518デフォルトの名無しさん:2014/06/06(金) 17:40:52.00 ID:w3KzEqPi
te
519デフォルトの名無しさん:2014/06/06(金) 18:14:25.07 ID:DhW11ZOH
>>514
すまん、読んでないから代わりにMSDNを読んだんだ
>>515
カンマ消費したいなら(?:^|(?<=,))にしてケツに「,?」つけときゃいい
520デフォルトの名無しさん:2014/06/08(日) 20:25:33.98 ID:s2VYdfCn
詳説正規表現を読んだ人を相手にするならISDN読んだくらいの知識じゃダメ。
知ったかぶりしたいだけのアホみたいなレスしか付けられてない。完全スルーされてる理由がこれ。
521デフォルトの名無しさん:2014/06/08(日) 20:43:06.29 ID:TQW0yU/1
やっぱし時代はB-ISDNか。。。
522デフォルトの名無しさん:2014/06/08(日) 21:01:38.94 ID:qc9K162V
フレッツISDNでしょ
523デフォルトの名無しさん:2014/06/08(日) 21:10:12.04 ID:UQpq0lvz
交換機の寿命がもったいないからって、このIP全盛の時代に、ISDNを2025年まで維持するって、
NTTって公務員気質だよな。こんなんで、経営がやばいって泣き付いて、グループ割引を認め
させようとするの、おかしい気がする。
524デフォルトの名無しさん:2014/06/08(日) 23:05:24.99 ID:Z/+4RY6H
よろしくお願いします。

●Regular Expressionの使用環境
javascript

●検索か置換か?
置換

●説明
{{ と }} で囲まれた文字を削除したい
改行あり

●対象データ
{{ABCA
BCAA}}
CABA
{{ABCA}}

●希望する結果
CABA
525デフォルトの名無しさん:2014/06/09(月) 00:27:18.65 ID:kYVhWaqv
っ[\s\S]
526デフォルトの名無しさん:2014/06/09(月) 03:02:54.27 ID:+aXF6mrh
>>523
準専用線的な使い方されてたりするとサービス切り捨てられないんじゃないの?
527デフォルトの名無しさん:2014/06/09(月) 07:51:38.08 ID:v4Ko1KtV
>>523
遅くても、高くても、確実に接続できると言うことが重要な用途かあるんよ
528デフォルトの名無しさん:2014/06/09(月) 11:16:42.51 ID:Q8TzlagX
Regular Exchange
529デフォルトの名無しさん:2014/06/10(火) 15:59:32.39 ID: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になります。
530デフォルトの名無しさん:2014/06/10(火) 18:08:47.23 ID:VWf0ifMQ
何がしたいのか理解不能
531デフォルトの名無しさん:2014/06/10(火) 18:54:55.19 ID:hjE5rbOB
>>529
色々と間違ってる
・文字列中に「\」を記述するなら、「\\」と書く必要がある
・RegExpオブジェクトとRegular Expression オブジェクトを混同している
 indexはRegExpオブジェクトである(書くなら、re.indexではなく、RegExp.index)
・まず、先頭の^>[^<]だが、>の後に<でない1文字がくることを示しているので
 「>あ」が相当するのでその後に「あい」はもうないのでマッチしない
532デフォルトの名無しさん:2014/06/10(火) 19:00:17.77 ID:m0Hs+iOa
●Regular Expressionの使用環境
chromeの最新版(バージョン 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);
533デフォルトの名無しさん:2014/06/10(火) 19:06:10.17 ID:m0Hs+iOa
色々すいません…勉強してきます。
534デフォルトの名無しさん:2014/06/10(火) 19:19:12.04 ID:m0Hs+iOa
以下でうまくいきました!皆さんありがとうございました!

lat = 'あい';
body = '<a href="あい">あい</a>';

reg = new RegExp(">[\\s\\S]*?" + lat + "[\\s\\S]*?<","m");
var myArray = reg.exec(body);
console.log( myArray.index);
535デフォルトの名無しさん:2014/06/10(火) 21:20:18.18 ID:hjE5rbOB
>>534
勘違いしてるようだが、mフラグは、マルチラインで各行ごとに^$をマッチさせるもの
例 ">あ\r\nあいう\r\nえお" で、
re=/^あ/m だと2行目の「あ」が
re=/う$/mでも2行目の「う」でマッチする

あと余計なお世話かも知れんが、何を求めるのかにもよるが
<が\でエスケープされて使われてたりタグがネストされてたりした場合問題ないのか?
536デフォルトの名無しさん:2014/06/11(水) 00:06:08.14 ID:xZSwObig
>>531
RegExpオブジェクトとRegular Expressionオブジェクトって何だ…って思ったが、
RegExpインスタンスとRegExpオブジェクトのことかな。
ただ、MDN見る限り、どっちのオブジェクトにもindexなんてプロパティは無い。
indexは文字列のmatchメソッドにgフラグなしのRegExpインスタンスを渡した場合か、
RegExpインスタンスのexecメソッドを使った場合に戻ってくる配列風オブジェクトのプロパティ。
537524:2014/06/11(水) 23:03:46.46 ID:lJHLCR0d
>>525
(お返事なのかな?)
使い方がわからなかったのですが[\s\S] ってどういう意味でしょうか?
.(ピリオド)と同じだと思うのですが違うのでしょうか?
538デフォルトの名無しさん:2014/06/11(水) 23:48:25.28 ID:GYXfPDYR
.は改行文字にマッチしない
かもね
javascriptの挙動なんかしらね
539デフォルトの名無しさん:2014/06/12(木) 00:59:23.35 ID:B2xmHfb6
改行考えるのめんどくさいし性能気にならないとか何回も繰り返すとかなら
事前に改行取っちゃうのが良いと思う
replace(/\r\n/g,'')
540524:2014/06/12(木) 02:49:59.98 ID:rnw2O6YE
>>538
改行を含めるか含めないかですね。理解しました。

すみません。これだけだと524で書いた例が達成できませんでした。
{{ABCA
BCAA}}
CABA
{{ABCA}}
これにたいして/\{\{[\s\S]+\}\}/gで検索して空文字に置き換えようとすると
{{ABCA
^^^^^^
BCAA}}
^^^^^^
CABA
^^^^
{{ABCA}}
^^^^^^^^
と、一行目の先頭の {{ と 四行目の最後の }} までが範囲になってしまい、
三行目まで含まれてしまって三行目も消えてしまいます。

一行目の先頭の {{ と 二行目の最後の }}、四行目の先頭の {{ と 四行目の最後の }}
という風にマッチしてほしいです。
541デフォルトの名無しさん:2014/06/12(木) 05:06:48.19 ID:19dxnqrT
+の後ろに?つけれ。
行頭、行末って縛りも入れたいならmオプション足して^と$でパターン挟めばよかったかと。
542デフォルトの名無しさん:2014/06/12(木) 06:02:53.39 ID:Tz9QxUUt
知ったかぶりしたいだけのアホ って書いたそばから知ったかぶりか。
人間だからミスするのは仕方ない。が、これはミスじゃない。
ウソをついてるだけだ。愉快犯とかそういうレベル。
543デフォルトの名無しさん:2014/06/12(木) 07:14:40.92 ID:QxIJYTkG
>>524
{{ }}を削除するのに、JSではそれに一致しないという、
否定形がないので難しい
否定形があれば、一致しない方を取り出せる

String.replaceで、ヌル文字に置換しようと思ったが、
これは全箇所ではなく、1つしか置換しない

結局、1文字ずつ処理した方が速いかも

1行ずつではなく、改行をまたいでも(複数行で)
一致させるには、m オプションを付ける

{, } は正規表現のメタキャラクタなので、
\(バックスラッシュ)でエスケープする。\{, \}

^ で行の始まり、$ で行の終わりを示す
例、^A, $A (行頭、行末のAに一致)

>>529-536
JQueryの、:contains で要素の内容に、
部分一致したすべてのものを取得できる

だが、text()を使うと、すべての文字列が連結されてしまうので、
map を使って、配列に格納する
そしてその後、その配列を処理すれば?

ttp://www.jquerystudy.info/reference/traversing/map.html
544デフォルトの名無しさん:2014/06/12(木) 07:43:03.95 ID:19dxnqrT
>>542
指摘はもうちょい具体的にやれや荒らしモドキ。せめてアンカー打て。
>>543
純粋な検索でパターン以外を探すのはだるいけど、要求は置換だからパターンでマッチさせて空文字列に置換すれば終わり。
JavaScriptの「m」フラグは「^」と「$」がマッチする場所を文字列全体から各行単位にするオプション(>>535)。
正規表現エンジンや実装によっては「.」が改行文字を含むかどうかが変化する場合もあったかな。
545デフォルトの名無しさん:2014/06/12(木) 08:56:07.30 ID:28owxB+5
>>543
知らないなら黙ってりゃいいのに。ウソ教えて誰が得するんだ?

>>524
{{ABCA
BCAA}}
CABA
{{ABCA}}
をキミの仕様通りに置換すると
(空行)
CABA
(空行)
だろ。
それなら
txt.replace(/{{[^}]+}}/gm, "") == "\nCABA\n\n"
>>524のとおりに}}の後の改行も削除したいなら
txt.replace(/{{[^}]+}}\n?/gm, "") == "CABA\n"
546デフォルトの名無しさん:2014/06/12(木) 08:59:37.25 ID:28owxB+5
var txt = "{{ABCA\nBCAA}}\nCABA\n{{ABCA}}";
としたつもりだった。

"{{ABCA\nBCAA}}\nCABA\n{{ABCA}}".replace(/{{[^}]+}}\n?/gm, "") == "\n\CABA\n\n"
"{{ABCA\nBCAA}}\nCABA\n{{ABCA}}".replace(/{{[^}]+}}\n?/gm, "") == "CABA\n"
547デフォルトの名無しさん:2014/06/12(木) 16:41:13.40 ID:Tz9QxUUt
>>544
あ、ごめん。>>531宛て。

>>545-546
/m の意味を分かってなさそう。>>544に書いてあるよ。

>>543
>否定形があれば、一致しない方を取り出せる

これ何をしたかったのかちょっと気になる。 [^ ] の話ではなさそうだし。
548デフォルトの名無しさん:2014/06/12(木) 19:17:20.11 ID:B2xmHfb6
Regular Expression オブジェクトって何を指してるのかな?
って検索してみたら

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プロパティのことを指すってことかな?
549デフォルトの名無しさん:2014/06/12(木) 22:48:52.95 ID:Tz9QxUUt
var lat = 'あい';
var str = '<a href="あい">あい</a>';

reg = new RegExp( ">[^<]*?" + lat );
var ans = str.match( reg );
console.log( ans.index );

>>531は間違ってるとは言えないな。他の書き込みも正しいしちゃんと分かってる人だ。
訂正してお詫びします、申し訳ない。
550536:2014/06/13(金) 00:20:21.31 ID:OKMjmph6
>>548
あー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プロパティを持つ。
551536:2014/06/13(金) 00:21:03.26 ID:OKMjmph6
>>531
というわけで、JScript以外ではダメっぽいけど「JScriptなら」それで正しかったわ…すまん

>>549
いや、JScriptの仕様に従うならconsole.log(RegExp.index);でいいよ。
console.log(ans.index);はJScript以外でも使えるやり方でRegExp.indexは関係ない。
ansは配列と互換性がある、固有の名前が示されていない配列系統のオブジェクトで、
RegExpオブジェクトでもRegular Expressionオブジェクトでも、それらのインスタンスでもない。
552デフォルトの名無しさん:2014/06/13(金) 02:12:34.12 ID:1lb2UA6a
名称の違いについては於いておいて、>>531が「何」を言いたかったのかは明確で
誤解する人は皆無だったと思われる
そんなに避難することか?
それに正規表現オブジェクト(Regular Expression Objectの訳か?)、
RegExpオブジェクトって日本語はそれこそ山のように各サイトで使われてるよ?
Windowsは、IEが標準なんだし
553デフォルトの名無しさん:2014/06/13(金) 03:29:56.54 ID:OKMjmph6
>>552
名称は判り難いだけだしあの説明でも別にいいんだけど、
RegExp.indexはJScript専用だし注釈入れないとダメだろ。
>>529の質問の時点ではJavaScriptとしか言われて無い。
イマドキはWindows欧州版はIEがデフォですらない筈だし、
IEのシェアも(統計に寄るが)既に6割切ってる状態だぞ?
554デフォルトの名無しさん:2014/06/13(金) 03:41:53.11 ID:1lb2UA6a
>>553
注釈はあったほうが確かに親切だね
でもindexとかプロパティ名を自分から持ち出してくるぐらいだから
reのプロパティじゃ無いっていう一言ですぐ気が付くと俺は思うよ
それを何であんなにボロクソに言わなきゃならんのかそっちの方がわからん
555デフォルトの名無しさん:2014/06/13(金) 03:55:33.34 ID:1lb2UA6a
>>553
ボロクソに言ったのは別人なのか、失礼
でも例えば、説明の単語の意味が間違ってて頓珍漢だったとしても、
言いたいことは万人に伝わるから感謝されることはあっても貶すのは何故だったのかな?
それともその意図が万人に伝わるって思うのは俺の贔屓目かな?
556デフォルトの名無しさん:2014/06/13(金) 04:21:21.81 ID:Uqy9EvnJ
>>529にはconsole.logが使われてる。この時点でJscriptは回答の選択肢から外すのが妥当では。

・・と思ったらいつの間にかIEもconsole.logに対応してた。
557デフォルトの名無しさん:2014/06/13(金) 04:29:56.23 ID:OKMjmph6
>>555
いや俺(ID:xZSwObig ID:19dxnqrT ID:OKMjmph6)は、
>>529の質問をした奴ではないから感謝云々はイミフだし、
回答を貶したつもりは特に無いんだが…誰に言ってるの?
俺が>>531に対してレスしたのはMDNの基準で名称が違うって点と、
(これはMSDNの基準では正しい名称だから551で謝ってる)
RegExp.indexがJScript固有だから一般には使えないという指摘だけ。

まぁそろそろスレチだから謝罪要求ならそのへんにしとけよ。
558デフォルトの名無しさん:2014/06/13(金) 04:39:06.42 ID:1lb2UA6a
>>557
別に謝ってくれなんていってないだろ
質問に間違ってる箇所を抜け無く指摘してて、質問者はすごく助かっただろうなって思ったところに
嫌なもん見ちゃって、しかもそれが君だと思ったんだよ
君が文句言ってたんじゃなかったんで、そこは俺の勘違いだ
それにちゃんと謝ってるレスも見てるから更に謝れっていうつもりは毛頭なかった
ただ、何故それほどの勢いでボロクソにいったのか、言った奴は何を思ってたんだろう?
って思っただけなのさ
559543:2014/06/13(金) 05:35:04.76 ID:hNNRznvy
>>543 自己レス
>String.replaceで、ヌル文字に置換しようと思ったが、
>これは全箇所ではなく、1つしか置換しない
gフラグを付けると、一度に複数箇所の置換ができるのか

そういう例を載せているサイトが、ほとんどなく、
MDNなどでも、簡単な例しか載せていないから、勘違いした

簡単な例しか載せていないサイトの作者は、
実際にプログラミングしたことないのかも。
一度に複数箇所の置換をするのは、当たり前なのに

>>547
>否定形があれば、一致しない方を取り出せる
{{ }}を削除するんだから、それら以外を取り出せばいいでしょ?
他の言語みたいに、一致する・しないを、
invertとかで反転できれば楽なのに、と思った
560デフォルトの名無しさん:2014/06/13(金) 09:39:52.49 ID:Uqy9EvnJ
>>559
>簡単な例しか
/gを知らなくてもwhile文でなんとかなるという。

>invert
面白い考え方だなぁ、splitの区切りとして \{\{.*?\}\}\r?\n? を使えばそれっぽい動作に。
561デフォルトの名無しさん:2014/06/18(水) 23:35:08.75 ID:ZhuMT17M
●Regular Expressionの使用環境
Perl

●検索か置換か?
検索

●説明
前に指定したデータを含まない、「スケート」だけマッチさせたい


●対象データ
アイススケート
ローラースケート
スケート


(?<!アイス)(?<!ローラー)スケート

上記の正規表現文で、3行目のスケートだけマッチ出来るようになったのですが、もっと簡略化して書きたいです。
なにかよい書き方はないでしょうか。
562デフォルトの名無しさん:2014/06/19(木) 00:56:54.71 ID:bX6gAL+1
「^スケート」
必要に応じてmフラグを追加すること。
563デフォルトの名無しさん:2014/06/19(木) 01:09:00.80 ID:BHBkF7FI
>>562
それだと質問者の題意を外しているよ
564デフォルトの名無しさん:2014/06/19(木) 11:28:05.43 ID:fmMr1ZfN
フィギュアスケート

がマッチするべきなのかそうでないのかが質問からでは分からないね。
質問するときはなるべく回答者から質問し返されないように書こう。

これが分からないと正規表現作れないので答えは保留。
565デフォルトの名無しさん:2014/06/19(木) 11:34:09.71 ID:fmMr1ZfN
あと、「スケート大会」は?データは1行につき1つ、ということでいいのかな。
文の中からマッチさせたいとなると書き方変わってくるよ。
566デフォルトの名無しさん:2014/06/19(木) 15:10:40.02 ID:bFqlqoZb
レス頂いた皆さんありがとうございます。
失礼しました、言葉不足でした。

(?<!アイス)(?<!ローラー)スケート

前方で指定したアイスとローラー以外は一致させたいので、フィギュアスケートはマッチをさせたいです。
データは1行につき、複数あることもあり、文中に出てくる場所はランダムとなります。

(?<!アイス)(?<!ローラー)スケート を (?<!アイス|ローラー)スケート のように、上手く簡略化して書けないかなと思ったのですが、難しいでしょうか。
一応今の指定でもマッチさせることは出来るのですが、毎度 ?<! の指定でミスが出そうなので。。
567デフォルトの名無しさん:2014/06/19(木) 18:12:42.91 ID:fmMr1ZfN
>>566
(?<!アイス)(?<!ローラー)スケート

これで期待通りな動作になってるならこれがベストです。
後ろ読みには制限があって文字数の異なるものを分岐で一緒には出来ません。

後ろ読みを使わずに作る方法もあるけど複雑になるのでおすすめ出来ません。
568563:2014/06/19(木) 23:17:04.59 ID:a52+QUcr
まあこれくらいの題意の汲み取りはESPer能力の範疇だろう。

>>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;
}
569デフォルトの名無しさん:2014/06/19(木) 23:21:01.53 ID:a52+QUcr
先読みじゃなくて後読みだったね
570デフォルトの名無しさん:2014/06/19(木) 23:29:17.00 ID:bX6gAL+1
戻り読みって呼び方のほうがわかりやすくて好き
571デフォルトの名無しさん:2014/06/20(金) 10:47:03.82 ID:CECmTvf5
>>566
>データは1行につき、複数あることもあり、文中に出てくる場所はランダムとなります。

1、"文章" の中にデータが複数回出てくることがある
2、1行につきデータが1つ以上あるCSVみたいな形式のデータ

どっちの意味なんだろうね?

ちなみにperl5.14以降なら (*SKIP)(*F) を使うことで後ろ読みを回避出来ます。
それ以前のperlでは \K と (?> ) を使って頑張って書くしかないので現実的ではありません。

やはり (?<!アイス)(?<!ローラー)スケート が一番簡潔で良いでしょうね。
572デフォルトの名無しさん:2014/06/21(土) 17:10:18.19 ID:YtO/rTsZ
すいません、お返事遅くなりました。
皆さんレスありがとうございます。

>1、"文章" の中にデータが複数回出てくることがある
>2、1行につきデータが1つ以上あるCSVみたいな形式のデータ
失礼しました、1を指していました。

考えてみましたが、一番簡潔ということで当初の

(?<!アイス)(?<!ローラー)スケート

で実現させて頂こうと思います。
正規表現は難しいですね。。皆さんのご意見大変勉強になりました。
貴重なお時間ありがとうございます。
573デフォルトの名無しさん:2014/06/28(土) 15:30:36.45 ID:zyFd2JCz
Visual Studio のC++の検索ダイアログで

if( a==b ) ...

と比較すべきところを、うっかり

if( a=b ) ...

と代入してしまっている行を検索する正規表現を教えてください。
574デフォルトの名無しさん:2014/06/28(土) 15:35:14.65 ID:JVYDyHql
そういう「うっかり」はo俺には有り得ない
君も有り得なくなる訓練したほうがよくね?
575デフォルトの名無しさん:2014/06/28(土) 15:47:47.99 ID:2gyd2nFZ
>>573
lintとか使えないん
576デフォルトの名無しさん:2014/06/28(土) 21:26:59.74 ID:Rp60SifU
そもそもコンパイラが警告するだろ。
577デフォルトの名無しさん:2014/06/28(土) 21:37:31.34 ID:JJOy/9cW
●Regular Expressionの使用環境
秀丸

●検索か置換か?
置換

●説明
行の末尾が「。」か「?」か「」」で終わってない時、その行の改行を消したい

●対象データ
〜だと
思われる。

●希望する結果
〜だと思われる。
578デフォルトの名無しさん:2014/06/28(土) 23:28:40.94 ID:zyFd2JCz
>>575 lintは使ったことがありません。
>>576 確かに警告レベルを上げるとこのうっかりミスを検出できるんですが、
他の警告も数百行くらい出て来て、その中に埋もれて探せません。
VisualStudioでなくて良いので、一般的な正規表現で良いので
if( a=b ) ...
の行を検出する記述教えてください。
579デフォルトの名無しさん:2014/06/29(日) 00:00:47.51 ID:XRj+RUkP
>>578
> 他の警告も数百行くらい出て来て
VCなら警告を個別に抑制するオプションが有るし、
警告食らうようなコード書く癖を直したほうがバグは減る。
580デフォルトの名無しさん:2014/06/29(日) 00:39:43.79 ID:v5LOBQZB
終わってる現場だなw
581デフォルトの名無しさん:2014/06/29(日) 00:43:38.39 ID:v5LOBQZB
> if(a = b) の行を検出

はい

\Qif(a = b)\E.+
582デフォルトの名無しさん:2014/06/29(日) 03:06:19.24 ID:9gOHiVwx
どこの世界に
「if (a == b) をうっかり if (a = b)にしちゃった場合」
の対処を考えるとバカがいるんだ

いるんだなあ
危ないからプログラミングなんかやめな
583デフォルトの名無しさん:2014/06/29(日) 06:40:05.84 ID:MWhv4yeK
定数==a と書く癖をつければ
定数=a でコンパイルエラーになり半減する。
584デフォルトの名無しさん:2014/06/29(日) 07:36:48.28 ID:7WQEgw+o
そんな癖より a == と書く癖を付けろw
585デフォルトの名無しさん:2014/06/29(日) 11:32:28.89 ID:d4tnsDO5
>>579
> 警告食らうようなコード書く癖を直したほうがバグは減る。

マイクロソフトが提供してるヘッダーファイルが指摘されたりするんだが (w
586デフォルトの名無しさん:2014/06/29(日) 14:45:40.31 ID:5EYPycte
全部消すとは言ってないように思うし
そもそもワーニングメッセージが1000あろうが検索すれば問題ないと思うんだが?
587デフォルトの名無しさん:2014/06/29(日) 16:51:42.99 ID:8UDboPcg
セミコロンが後続しない代入文を探す方が楽なんじゃね?
588デフォルトの名無しさん:2014/06/29(日) 18:01:07.24 ID:XRj+RUkP
strcpyとか使いながら_CRT_SECURE_NO_WARNINGSを付けてないとか、
衝突するような組み合わせでインクルードしてるって落ちじゃねぇだろうなぁ・・・?
589デフォルトの名無しさん:2014/06/30(月) 01:48:31.63 ID:U4fGRyyk
ブラウザ上でドラッグで線を引いて正規表現をつなぎあわせて最適化するツールがあった気がするんだけどどこだっけ?
590デフォルトの名無しさん:2014/06/30(月) 07:53:07.15 ID:NEvD+hUX
>>586
> そもそもワーニングメッセージが1000あろうが検索すれば問題ないと思うんだが?

ビルドの度に?
591デフォルトの名無しさん:2014/06/30(月) 08:05:17.90 ID:lkR4e2Il
>>585
それは自分が書くコードに警告を残して良い理由にはならない。
そういう言い訳する派遣はその場で、契約解除だ。
592デフォルトの名無しさん:2014/06/30(月) 09:43:57.26 ID:lJxnkRTG
>>590
自動でやれば問題ないと思うが。
593デフォルトの名無しさん:2014/06/30(月) 09:48:02.20 ID:lJxnkRTG
>583は悪習だ。
定数を先行させる癖をつけても、左辺に代入可能な式が来てしまっては元も子もない。
例えば、class Foo に参照を返すmember()があったとして、
Foo.member() = a は警告対象にならない。
# そもそもconst参照を返せよって話になるのだが、const参照を返さない輩は多い。
594デフォルトの名無しさん:2014/07/01(火) 13:40:32.37 ID:iCkx4BHg
俺もいろいろ試した結果、
定数を右辺にして、あとはIDEに丸投げといったところに落ち着いたなあ
595デフォルトの名無しさん:2014/07/01(火) 15:52:08.44 ID:RSTmOvHv
>>593
半減と言っているのに。
596デフォルトの名無しさん:2014/07/02(水) 11:00:35.70 ID:zVF2m6el
文字列が英数字4文字の組み合わせかどうか調べるには、

echo "A2BS" | grep [0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]

で出来たのですが、100文字とかになると大変なのですが、
もっとスマートな書き方ありますか?
597デフォルトの名無しさん:2014/07/02(水) 11:18:03.11 ID:SktLeQv9
>>596
echo 'ABCDA' |grep '^[0-9a-zA-Z]\{4,4\}$'
598デフォルトの名無しさん:2014/07/02(水) 11:20:11.15 ID:SktLeQv9
>>596
間違えた。
echo 'ABCDA' |grep '^[0-9a-zA-Z]\{4\}$'
599デフォルトの名無しさん:2014/07/02(水) 11:37:30.97 ID:zVF2m6el
>>598
ありがとうございました。
出来ました。感謝です。
600デフォルトの名無しさん:2014/07/03(木) 22:40:52.01 ID:j5QsBrGP
perlで

$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------

ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
601デフォルトの名無しさん:2014/07/03(木) 22:41:23.55 ID:j5QsBrGP
perlで

$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------

ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
602デフォルトの名無しさん:2014/07/03(木) 22:42:46.59 ID:j5QsBrGP
perlで

$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------

ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
603デフォルトの名無しさん:2014/07/03(木) 22:43:11.56 ID:j5QsBrGP
perlで

$dataに以下の複数行の文字列が書いてあるのですが
--------------はじめ--------------------------
ABC def {
c { }
}
XYZ pqy {
qwe 1
}
---------------おわり-------------------------

ABC def {
c { }
}
というのを抜き出したいため
if ($content =~ /(ltm profile .*\n\})/sm){
print "$1\n";
}
としたんですが全体が抜き出されてしまいます
どなたかご教授下さい。
604デフォルトの名無しさん:2014/07/03(木) 22:44:48.06 ID:j5QsBrGP
すいません。
IEが全然返ってこなくて、何回も書き込むことになってしまいました。
605デフォルトの名無しさん:2014/07/04(金) 02:15:58.88 ID:tywICoUd
こういう質問する人はプログラミングに向いてないと思うなぁ。向いてたら自分で調べちゃうから。
学校の授業かなんかで嫌々やらされてんのかな。
606デフォルトの名無しさん:2014/07/04(金) 02:49:59.75 ID:s7hbKy2B
/(ABC [^{]*{[^{}]*({[^{}]*}[^{}]*)*})/
な感じでいいのかな
607デフォルトの名無しさん:2014/07/04(金) 10:14:41.98 ID:VHgyx1X4
言われた通りやったけど、正解にならなかったから、答え教えてって人だな。
テストで暗記して点数稼ぐタイプ。

言われたら何故そうやるのかを考え理解して、応用しないと。
608デフォルトの名無しさん:2014/07/05(土) 00:42:52.65 ID:p5JatFwW
これってキチンとしたものを作ろうと思ったら超難しいよ。
パーサーを作れと言ってるのと同じだからね。

例えばこんなのも想定する必要がある。

ABC def {
c="{";
}

$str = "
ABC def {
";
XYZ test {
c{}
}

こういうイレギュラーなことに対応しなくても良いのなら
簡単に作れるけどね。

あ、もしかしたら 「そのデータ形式 パーサー perl」 で検索すれば
欲しいものが見つかるかもよ。
609デフォルトの名無しさん:2014/07/05(土) 01:17:17.13 ID:+HA1XJwR
>>608
文法定義がBNFみたいなので明確に与えられていて、
部分式呼出し等の再帰構造を表現する機能が使えれば、
面倒くさいのは間違いないけどそこまででもない。
610デフォルトの名無しさん:2014/07/05(土) 13:24:09.21 ID:p5JatFwW
論点が超難しいかどうか、なレスだけど 誰から見て 難しいのかがあやふやだね。
質問者さんから見れば超難しいで正解だろう。>>609さんから見れば そうでもない で正解だろう。

こういうレスを付けるようじゃ合格点はやれないな。
611デフォルトの名無しさん:2014/07/06(日) 12:23:27.02 ID:4c9hY2mY
連続したホワイトスペースは\s+で書くけど
毎回これ書くの辛いので
ただのスペースをこれに読み替えてくれるオプションほしい
612デフォルトの名無しさん:2014/07/06(日) 12:33:44.78 ID:0QsWr+IB
>>611
正規表現でそう言う変換すればいいんじゃね?
613デフォルトの名無しさん:2014/07/06(日) 12:36:49.04 ID:GKoC5bbZ
ワロタ
614デフォルトの名無しさん:2014/07/06(日) 12:46:48.43 ID:4c9hY2mY
>>612
今までそうしてたけど
やっぱりパターンに変数入れるのはイヤ
615デフォルトの名無しさん:2014/07/06(日) 12:54:13.91 ID:0QsWr+IB
>>614
> やっぱりパターンに変数入れるのはイヤ

意味がわからんが、とりあえず正規表現処理ルーチン書き換えればいいんじゃね?
616デフォルトの名無しさん:2014/07/06(日) 15:51:05.60 ID:cxd6frI3
JavaScriptならString.replaceとかを上書きすりゃ出来そうだな
617デフォルトの名無しさん:2014/07/06(日) 16:23:24.16 ID:JKxWpx0K
頭の悪いフランス人が存在するせいで記号類も変換対象になるように事前に書き換えてる
618デフォルトの名無しさん:2014/07/06(日) 16:39:09.48 ID:Z97b2TES
>>617
お前そういう言い方したら、
英米人からしたら俺ら「頭の悪いCJK文字圏の連中」のせいで非ASCIIのUnicodeだとか面倒なうんたら……
って言われるのをお前自ら是認することを意味するぞ。
619デフォルトの名無しさん:2014/07/06(日) 16:58:39.74 ID:q4sERBNy
perlなら半角スペから\s+への変換をオーバーロードで書き換え可能。
詳しくは詳説 正規表現。

ただ、あまりおすすめしない・・。[ ] が [\s+] になるかも試練。
620デフォルトの名無しさん:2014/07/06(日) 17:26:39.53 ID:JKxWpx0K
いやいやフランス人全体が馬鹿だとか言ってるのではなくてだな
「頭の悪いフランス人」がいるんだわ
621デフォルトの名無しさん:2014/07/06(日) 19:19:27.38 ID:FK685k7D
頭の悪い日本人も目立つなあ
622デフォルトの名無しさん:2014/07/06(日) 19:45:51.52 ID:4Al3+AY7
自己紹介乙
623デフォルトの名無しさん:2014/07/06(日) 21:09:46.04 ID:JKxWpx0K
まあ馬鹿だなあと思う奴の方が多いのは事実だな
逆は片手で余裕だが
624デフォルトの名無しさん:2014/07/06(日) 21:11:46.11 ID:JKZH1xqw
>>620
それ括弧つけた意味ないw
625デフォルトの名無しさん:2014/07/06(日) 21:15:12.39 ID:JKxWpx0K
おおこんな殺伐としたスレに俺以外にもJKが
626デフォルトの名無しさん:2014/07/06(日) 23:16:11.70 ID:ZNTkqHdO
正規表現でサクラエディタの色付け指定をやってるんだが、上手くできないので誰か教えてくれ…

@command tag1.cmd1, tag2.cmd2, tag3.cmd3
こんな感じで、行頭に@command[SP]という文字列が存在する行で、
その後は 文字列.文字列,[SP]が繰り返されるようなテキストがあるとき、
(最後は,[SP]は無し)
. と ,に囲まれた文字列をマッチさせたいのだが、どう指定してやればいいんだろう
(上記例だと、cmd1 cmd2 cmd3をマッチさせたい)

とりあえず、肯定先読みで (?<=^@command\s).+ としてやれば、
@command以後を取得することが出来ることまでは分かったんだが…
627デフォルトの名無しさん:2014/07/07(月) 01:46:23.33 ID: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が効かないっぽかったのでそこだけ戻り読み
628デフォルトの名無しさん:2014/07/07(月) 06:07:55.96 ID:K2ZAF5Gt
ああなるほど、これでいいのか
/(^@command|\G,) +\w+\.\K\w+/k
629デフォルトの名無しさん:2014/07/07(月) 07:19:55.86 ID:dSawaSg/
>>625
あんたの専ブラは類似ID強調機能でもあんのけ?
630デフォルトの名無しさん:2014/07/07(月) 22:41:07.42 ID:SrAB4sok
>>627
おお、ありがとうございます。助かった…
ちなみにライブラリの都合なのか、サクラエディタ1.6.6では上手く検索してくれないみたいだ
最新版にしたら動いたわ。
\Kの使い方は分かるけど\Gがよく分からないので勉強しないとな…
631デフォルトの名無しさん:2014/07/07(月) 23:08:35.01 ID:TLdjin8K
>>629
V2Cなんじゃね
632625:2014/07/08(火) 00:03:42.93 ID:A7a/SfRX
>>631どうしてわかった
633デフォルトの名無しさん:2014/07/08(火) 06:44:09.60 ID:qGOxpzR8
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
サクラエディタ 2.0.5.0(bregonig.dll 3.02)

●検索か置換か?
置換

●説明
Linuxでディレクトリのみのls -lコマンド結果からパーミッション、オーナー、グループ、ディレクトリ名(/から始まるフルパス表記)以外を置換して除去したい

ハードリンク数やサイズや更新日時が除去できれば良いと思うのですが、
ls -lコマンド結果に例外的なものがあるのをご存知の方がいらっしゃれば、
それに対応頂きたいです。
よろしくお願いします。
634デフォルトの名無しさん:2014/07/08(火) 07:11:58.82 ID:2XtqBTEe
>>633
「ls」が「ls --time-style="+%Y-%m-%d_%H:%M:%S" --color=auto」のエイリアスになってたりとか、
lsの例外は色々あるというかありうる例外の数が有限ではないから全対応とかは無理がある。
素のlsに限定してもロケールで振り回されることになるし、条件を絞って妥協した方がいいと思う。
・桁揃えが破綻してなければ矩形選択してバックスペースで済ます、正規表現は使わない
・桁数や書式を決め打ちした正規表現で済ます
・実行するコマンドを変えてそっちで必要な情報だけを出す

正規表現でやるにしても、対応したい書式をざっと出して、それに対する正規表現を考えた方が良い。
というわけで対象データと希望する結果は省略しないでくださいな。
635デフォルトの名無しさん:2014/07/08(火) 07:34:14.05 ID:A7a/SfRX
っLANG=C
636デフォルトの名無しさん:2014/07/08(火) 15:08:27.37 ID:o31OpX8o
awk使おうぜ

(LANG=C; /bin/ls -l | awk 'match($0, /^d.+/) {print $1 "\t" $3 "\t" $4 "\t" $9 }' )
637デフォルトの名無しさん:2014/07/08(火) 16:40:14.27 ID:hxSm+BQN
>>633
findで書いた方が楽じゃない?
$ 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
638デフォルトの名無しさん:2014/07/12(土) 17:53:04.61 ID:xHcjdJl5
●Regular Expressionの使用環境
サクラエディタ 2.1.1.3(bregonig.dll 3.05)

●検索か置換か?
検索(エディタの正規表現キーワード指定)

●説明
>>626の質問をした者です。
>>628で答えを貰ってから少しずつ練習をしているのですが、
サクラエディタの正規表現キーワード指定(タイプ別設定)の設定が上手くできないため教えてください。

@cmd あいうえお_かきくけこ_さしすせそ

上記のような文字列(行頭が@cmd[SP]である行で、その後に任意の文字列が続く)のうち、
文字列に含まれるアンダースコアを全てマッチさせたいと考えています。
そこで、次のような正規表現を考えました。
/(^@cmd|\G(\w|\[|\]))[^_]*\K[^_]*_/k
\Gの直後のカッコに [ ] を入れているのは、文字列にカッコ記号を含む可能性があるためです
この正規表現で通常の画面から検索をすると(/ /kを消して)、@cmdから始まる行のアンダースコア全てがハイライトされるのですが、
正規表現キーワード指定画面にて指定しても指定箇所に色が付きません。(カラー設定は行っています)
指定した正規表現に間違いがあるのでしょうか。
これ以外のキーワード指定は削除しているため、キーワード指定同士の競合はありません
639デフォルトの名無しさん:2014/07/12(土) 20:15:20.44 ID:ECDEtuh/
>>638
検索でマッチしてる時点で成功してるんだからアプリの使い方の問題で、
このスレで聞くにはスレチな問題だってわかると思うんだが…エディタのスレで聞いてこい。
あと表現は「/(^@cmd |\G)[^_]*\K_/k」だ。でないと「@cmd a_@b_c」がマッチしない。
全てのアンダーバー文字の間にありうるのはアンダーバー以外すべての文字だ。
640デフォルトの名無しさん:2014/07/12(土) 22:12:53.17 ID:iiryn2e2
着色設定ではマッチしたところからの\Gが使えないのかもね。
ABBBBB を A\GB で着色出来るか試せば分かる。

こういうシンプル化した実験すれば質問する前に原因の絞りこみくらいは出来るよ。
641デフォルトの名無しさん:2014/07/12(土) 22:38:35.99 ID:ECDEtuh/
>>640
あえて書かなかったけど、2.1.0.0で普通に着色できるんだよ。
設定ミスか、バージョン固有のバグだから多分スレチ……
642デフォルトの名無しさん:2014/07/12(土) 22:41:27.67 ID:4X8+jU3h
>>639
確かに\Gの後の指定がおかしいですね。ありがとうございます。
教えていただいた表現では、何故か行頭が@cmdでない行のアンダースコアも反応してしまうようです。

>>640
>>628の時点で、\Gと\Kが使えることは確認していました。

すみません、自己解決しました。
キーワードの指定で、マッチした文字を太字にする、という設定をしていたのですが
MSゴシックではアンダースコアの標準と太字の表示が全く同じのため
動作していたことに気付いていませんでした
643デフォルトの名無しさん:2014/07/12(土) 23:19:45.83 ID:iiryn2e2
>>641-642
最初から出来てたオチか。>>640は的外れな回答だったね、ごめん。


>\G
644デフォルトの名無しさん:2014/07/12(土) 23:43:55.99 ID:iiryn2e2
つづき

\G には ^ と同じ意味もあります。 ^ としての働きが余計な場合は \G(?!^) を使って下さい。
>>628以降これを見落としてます。

> [^_]

サクラエディタではこれでも問題無いんですがこれは本来、改行にもマッチする正規表現です。
他の環境で使うときは [^_\r\n] と書かなければならないのでご注意下さい。

サクラエディタは複数行に渡る検索が出来ない仕様のようですね。
これは正規表現ライブラリの仕様ではなくサクラエディタの仕様です。
645デフォルトの名無しさん:2014/07/13(日) 01:02:33.01 ID:XldxjMt3
>>644
なるほど。指摘助かった
646デフォルトの名無しさん:2014/07/13(日) 11:20:30.59 ID:BpgWxek/
>>644
> 他の環境で使うときは [^_\r\n] と書かなければならないのでご注意下さい。

否定文字クラスでは1文字の否定はできても2文字以上の否定はできないから、
それだと単独のCR改行やLF改行にはマッチしなくても、
CR+LF改行にマッチしてしまうのでは?
647デフォルトの名無しさん:2014/07/14(月) 01:37:34.34 ID:upDk1kff
CRLFってCRの次にLFが来るだけだからCRにもLFにもマッチしない文字クラスはどちらにもマッチしないでしょ。
648デフォルトの名無しさん:2014/07/14(月) 07:58:27.57 ID:JumStXQP
他のスレッドからこちらを紹介された来ました。

●Regular Expressionの使用環境
LiName リネームソフト

●検索か置換か?
置換 フォルダ構成の作成

●説明
バラバラになったファイルを、フォルダごとに分けたいです
そのためにLiNameを使いたいが、正規表現が分からないです

●対象データ
詰め合わせフォルダ
└(旅行) [ドイツ] あああ 画01枚.jpg
  (旅行) [ドイツ] あああ 画02枚.jpg
  (旅行) [ドイツ] あああ 画03枚.jpg
  (旅行) [ドイツ] いいい 画01枚.jpg
  (旅行) [ドイツ] いいい 画02枚.jpg
  (旅行) [アメリカ] ううう 画01枚.jpg
  (旅行) [アメリカ] ううう 画02枚.jpg
  (旅行) [ロシア] えええ 画01枚.jpg
  (旅行) [ロシア] えええ 画02枚.jpg


すいません、長いので次に書かせていただきます。
649デフォルトの名無しさん:2014/07/14(月) 07:59:10.74 ID: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
650デフォルトの名無しさん:2014/07/14(月) 08:31:56.84 ID:W4rrM4Ho
違法ダウンロードの臭いがぷんぷんするからスルー
651デフォルトの名無しさん:2014/07/14(月) 09:26:36.72 ID:o4xberdB
遅かったか・・・みなさんスミマセン
>>649 その質問じゃ意味がまず通じない(LiNameの挙動を普通しらない)
まずは自分で少しでも理解を
652デフォルトの名無しさん:2014/07/14(月) 20:20:49.55 ID:YJUBlObZ
Androidアプリで正規表現使うときってなんで後方参照使えないんでしょう
たいてい先読みとかは使えるのに……
653デフォルトの名無しさん:2014/07/14(月) 20:25:01.53 ID:ANmjrFBE
>>652
君が不能である理由を問いかけられても……
654デフォルトの名無しさん:2014/07/14(月) 20:36:16.16 ID:YJUBlObZ
? ちょっと意味分からないですね
655デフォルトの名無しさん:2014/07/14(月) 20:49:26.56 ID:CC89DLAU
>>652
windowsアプリで…って言われても広すぎて意味わかんないだろ?
あなたにとってのAndroidアプリ(またはそれを実装する特定の言語)は一つかも知れないが、他の人は知らない。
656デフォルトの名無しさん:2014/07/14(月) 21:57:57.64 ID:TLjb6OBb
20140506:◯◯用論文: 山田太郎


ここで◯◯用論文だけ抜き出すにはどうすればいいのでしょうか?
657デフォルトの名無しさん:2014/07/14(月) 22:06:31.70 ID:CC89DLAU
>>656
>>2を読むと抜き出せる。
658656:2014/07/14(月) 22:25:33.18 ID:TLjb6OBb
大変失礼しました

●Regular Expressionの使用環境
Ruby2.0

●検索か置換か?
置換

●説明
特定の文字列の箇所を抜き出したい

●対象データ
20140506:◯◯用論文: 山田太郎

●希望する結果
◯◯用論文
659デフォルトの名無しさん:2014/07/15(火) 03:20:27.62 ID:5fft4dh2
正規表現について少しでも勉強しようという気は無いのかい?
660デフォルトの名無しさん:2014/07/15(火) 12:56:03.78 ID:KtjRxeCE
「正規表現 入門」でググって10分で読める記事の内容だけで解決できる問題
661デフォルトの名無しさん:2014/07/15(火) 14:51:35.49 ID:8+z+AyjR
簡単だと自分でやれ、難しいと間違った回答

おまえらってほんと使えないよな。
662デフォルトの名無しさん:2014/07/15(火) 14:54:49.33 ID:omZ55U1R
その通りです。
663デフォルトの名無しさん:2014/07/15(火) 14:55:11.54 ID:bg9jP/mH
ほどほどのが良いんだよ
ほどほどの質問カモン!
664デフォルトの名無しさん:2014/07/15(火) 16:18:46.83 ID:yzRSnQGe
>>661
だれが間違ったって?レス番挙げてみろや
665デフォルトの名無しさん:2014/07/16(水) 00:07:34.78 ID:E2yy15pf
>>664
お前間違い教えてやるからレス番教えろや?
666628,639,645:2014/07/16(水) 07:08:57.04 ID:+nFw7X3r
>>664
俺。
667デフォルトの名無しさん:2014/07/17(木) 16:50:30.80 ID:nZ3lKfpt
例えば^(\d\d)(\d\d)$みたいな所で
$1とか$2で()内に指定された値が入るときに$1と$2の間に数字の0を入れたい場合どうなるの?
$1って指定が$10って扱いになっちゃって困ってるんだけど
668デフォルトの名無しさん:2014/07/17(木) 16:59:16.32 ID:j/HApCF1
669デフォルトの名無しさん:2014/07/17(木) 17:03:29.15 ID:rnj30R2J
PHP preg: ${1}0${2}
java $1\0$2
670デフォルトの名無しさん:2014/07/17(木) 17:20:36.78 ID:nZ3lKfpt
>>668
ふむふむなるほどなるほど・・・正規表現よくしらなくて$1\0$2とか$1\\\0$2ってかいたりしてた
>>669
あーなるほど、PHPの方でやったらできました。ありがとうございます!
(開発環境書き忘れたけどサクラエディタです)
671デフォルトの名無しさん
エスケープって処理系によって普通に違ったりするから覚えきれない。
後方参照になってなくて、マッチしないなぁ、とか悩んじゃったり。

でも大抵の間違い、固定パターンから始めて、少しずつ置き換えていけばわかるよね。
コマンドラインに書ける言語だと楽。