■ このスレッドは過去ログ倉庫に格納されています
Regular Expression(正規表現) Part13
- 1 :デフォルトの名無しさん :2014/11/05(水) 10:12:55.39 ID:CXVoT6Mj.net
- Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part12
http://peace.2ch.net/test/read.cgi/tech/1387257592/
天ぷら等2以降
- 2 :デフォルトの名無しさん:2014/11/05(水) 10:16:26.48 ID:wAx7C+BC.net
- スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
- 3 :デフォルトの名無しさん:2014/11/05(水) 10:20:13.02 ID:wAx7C+BC.net
- ◆関連サイト
正規表現メモ
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 :デフォルトの名無しさん:2014/11/05(水) 10:23:37.14 ID:wAx7C+BC.net
- ◆関連スレ
[UNIX板] 正規表現
http://pc12.2ch.net/test/read.cgi/unix/1039165754/
[WebProg] 正規表現道場 Part2 ←板移転
http://kanae.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/
[12] http://peace.2ch.net/test/read.cgi/tech/1387257592/
[13] http://peace.2ch.net/test/read.cgi/tech/1415149975/
- 5 :デフォルトの名無しさん:2014/11/05(水) 10:30:49.67 ID:J7onoSgD.net
- ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
- 6 :デフォルトの名無しさん:2014/11/05(水) 11:13:40.86 ID:bAAQDAhE.net
- 鬼車
http://www.geocities.jp/kosako3/oniguruma/index_ja.html
鬼雲
https://github.com/k-takata/Onigmo
Boost.Regex(日本語訳)
http://alpha.sourceforge.jp/devel/boost.regex_ja_1_45_0.pdf
秀丸: 複数行にまたがる検索について
http://homepage2.nifty.com/jr-kun/hidemaru_qa/4_regulr.html#RETURNS
サクラエディタ: 改行
http://d.hatena.ne.jp/myokoym/20101219/1292779058
※ サクラエディタでは複数行に渡る検索・置換は出来ません。
正規表現クックブック
http://www.oreilly.co.jp/books/9784873114507/
せいきなんとか
http://akiba.geocities.jp/hp20140401/
- 7 :デフォルトの名無しさん:2014/11/05(水) 11:16:30.19 ID:6PdTuYg9.net
- >>6
乙GJ
- 8 :デフォルトの名無しさん:2014/11/05(水) 11:32:33.63 ID:bAAQDAhE.net
- [ ある "文字列" を含まない正規表現 ]
▽ 先読みが使える環境
((?!xyz).)* または (?:(?!xyz).)*
後者はカッコによるキャプチャを無効化しています。
1文字以上の繰り返しにしたい場合は * を + に書き換えて下さい。
▽ 先読みが使えない環境
オートマトンの知識が不可欠なため初心者にはまず無理です。
解説サイトですらほとんどがデタラメな作成方法を載せています。
↓正しい作り方はこちら。
xy を含まないものにマッチする正規表現 - Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm#WithoutXY
xyz を含まないものにマッチする正規表現 - Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm#WithoutXYZ
↓いろいろな文字列否定
タグの中に "ある文字列" を含まない正規表現
http://akiba.geocities.jp/hp20140401/2014/002.html
- 9 :デフォルトの名無しさん:2014/11/05(水) 19:48:22.81 ID:bAAQDAhE.net
- >>6
間違えた。
× ※ サクラエディタでは複数行に渡る検索・置換は出来ません。
○ ※ サクラエディタでは複数行に渡る検索は出来ません。
置換欄に \r\n を入れれば行を増やすことは出来るようだ。
- 10 :デフォルトの名無しさん:2014/11/06(木) 09:13:27.45 ID:R+FFieFi.net
- ●Regular Expressionの使用環境
MKEditor or 秀丸Editor
●検索か置換か?
置換
●説明
HTMLファイル(XHTML1.0 Traditional)中の下記条件にあうコメントを画像リンクに変換したい
以下、24、とある部分は最大三桁までの正の整数(1〜350までの数字)で不連続、半角と読み替えてください。
なお数字が3桁に満たない場合はURL部分の場合は0で埋める必要があります。
ex)24->024
alt=""のところはalt="1-24"でもalt="1-024"でもalt="24"でも構いません。
お願いします
●対象データ
<p><!-- 1-24 --></p>
が、HTMLファイル中に多数点在
●希望する結果
<p><a href="https://picasaweb.google.com/lh/photo/CywfGi9h5Rglb16GAkhh8GIVtM1tvezqxIpxXhd2SqU?feat=embedwebsite">
<img src="https://lh3.googleusercontent.com/-ykcoD1uynzU/VFg3lb6lAHI/AAAAAAAAJ4c/80boYt68n0w/s640/201410%25E9%259B%25B2%25E5%258F%2596%25E5%25B1%25B11_024.JPG"
height="640" width="480" alt="1-24" /></a></p>
*2chの一行あたりの文字数制限の関係で改行ありますが、本当は一切入りません
- 11 :デフォルトの名無しさん:2014/11/06(木) 10:28:08.46 ID:lWF4wSu7.net
- >>10
補足
alt=""の置換は出来ればいいや程度で本命はURL文字列ないの置換です。
0埋めが無理な場合は1桁、2桁、3桁の場合で複数回に分けても構いません。
- 12 :デフォルトの名無しさん:2014/11/06(木) 13:27:21.94 ID:M7g3dHxa.net
- …?
<!-- 1-24 -->
からURLをどうやって導出するんだ?
- 13 :デフォルトの名無しさん:2014/11/06(木) 13:52:01.65 ID:M7g3dHxa.net
- URLの末尾のみが変動すると仮定するなら、安直なのは
var base = '<p><a href="https://picasaweb.google.com/(略)"><img src="https://lh3.googleusercontent.com/(略)_[HAGE].JPG" height="640" width="480" alt="$1" /></a></p>';
console.info("<p><!-- 1-1 --></p>".replace(/<p><!-- (\w+-(\d{1})) --><\/p>/, base.replace('[HAGE]', '00$2')));
console.info("<p><!-- 1-22 --></p>".replace(/<p><!-- (\w+-(\d{2})) --><\/p>/, base.replace('[HAGE]', '0$2')));
console.info("<p><!-- 1-333 --></p>".replace(/<p><!-- (\w+-(\d{3})) --><\/p>/, base.replace('[HAGE]', '$2')));
禿丸は持ってないのでJSなのは許せ
- 14 :デフォルトの名無しさん:2014/11/06(木) 16:21:39.82 ID:VPCdIppO.net
- 前スレでこの手法で置換してた人がいたね。
1-24
↓
1-0000024
↓
1-\d*(\d{3})(?!\d)
↓
1-$1
- 15 :デフォルトの名無しさん:2014/11/06(木) 21:18:29.51 ID:R1OkTjAz.net
- >>10
MKEditorだと正規表現はかなり貧弱な模様なので、マクロかスクリプトでやるべきだよ
例として WSH(JScript)の場合(c:\test.js)
MKEditorのメニュー - ツール - コマンドに、
コマンドライン: c:\test.js
パラメータ: %FILENAME%
として登録し実行
ただし、ファイルが外部で書き替わってもMKEditorは認識してくれないので
既存のファイルのみ可能でコマンド実行後、メニュー - ファイル -読み直すことが必要
- 16 :デフォルトの名無しさん:2014/11/06(木) 21:18:55.40 ID:R1OkTjAz.net
- var base = '<p><a href="https://picasaweb.google.com/lh/photo/CywfGi9h5Rglb16GAkhh8GIVtM1tvezqxIpxXhd2SqU?feat=embedwebsite">'
+'<img src="https://lh3.googleusercontent.com/-ykcoD1uynzU/VFg3lb6lAHI/AAAAAAAAJ4c/80boYt68n0w/s640/201410%25E9%259B%25B2%25E5%258F%2596%25E5%25B1%25B11_';
var opt1 = '\.JPG" height="640" width="480" ALT="';
var opt2 = '" /></a></p>';
var re=/<p><!--\s+(\d-(\d{1,3}))\s+--><\/p>/g;
try {repComment(WScript.arguments);} catch(e){WScript.Echo(e.number+" :"+e.message);}
function repComment(arg) {
var n=0,rfile,wfile;
var fs = new ActiveXObject("Scripting.FileSystemObject");
if(arg.length<1) throw new Error(10001,'パラメタ1にファイルパスを指定してください');
if(!fs.FileExists(arg(0))) throw new Error(10002,'指定ファイルがありません('+arg(0)+')');
rfile=fs.OpenTextFile(arg(0),1,true,0);
data=rfile.ReadAll();
data=data.replace(re,function($0,$1,$2){n++;return(base+('00'+$2).slice(-3)+opt1+$1+opt2)});
rfile.Close();
wfile=fs.OpenTextFile(arg(0),2,true,0);
wfile.Write(data);
wfile.Close();
fs = null;
WScript.Echo(n+'個の置換終了');
}
- 17 :デフォルトの名無しさん:2014/11/07(金) 00:10:01.81 ID:Ac/zCtPZ.net
- 皆様ありがとうございます。
>>10
です。
PicasaのURLをその後しばらく眺めていたところ、末尾以外にも変動するところが複数あり、しかも規則性なし、みたいで凄まじく脱力しております。おのれ、Googleめ。
せっかく多数の解決案をお示し頂きましたのに、私の調査不足でこんなことになりすみませんでした。
が、他に、正規表現で対処出来そうな物があるので、頂いた案を参考に自力で出来るように頑張ります。
MKEditorが複雑な置換に向かないということもご指摘ありがとうございます。
まことに申し訳ありませんでした。
- 18 :デフォルトの名無しさん:2014/11/07(金) 02:31:20.76 ID:LKxMdqoj.net
- >>9
WSH/JScriptのマクロなどで全文を取得→JScriptのRegExpとreplaceで処理→本文に反映、という手段は一応ある。
こういうのは何処らへんまでテンプレで説明するべきなんだろうなぁ…
質問(問題解決法の問い合わせ)に対する回答としては十分有効なんだが、テンプレ化すべきかと言われると悩む。
- 19 :デフォルトの名無しさん:2014/11/07(金) 11:43:10.76 ID:tBFEa1p7.net
- >>14みたいなテクもね。こういうノウハウをどこかに蓄積しといて
回答するときに「ココ見て」で済むようになると理想的だね。
- 20 :デフォルトの名無しさん:2014/11/08(土) 05:40:38.97 ID:xC/VOs2P0
- >>14
sed/awkでも、いったん前処理して単純化してから、
次の処理で完成させるなど、
処理を2つ以上に分けて考えると、間違いが少なくなる
>>15
JavaScriptにも正規表現あるもんね
それにJavaScriptの実行環境は、
ブラウザだけじゃなかったんだね
WSHで、JavaScript互換のJScriptを使って、
Windowsの一般のアプリのように使えるのか
- 21 :デフォルトの名無しさん:2014/11/09(日) 12:14:22.91 ID:YGc4Q6QV.net
- ●Regular Expressionの使用環境
秀丸Editor
●検索か置換か?
置換
●説明
HTMLファイルの<div>の中にある<br />を半角スペースに置換したい
●対象データ
<html><body>hoge<br />hoge<br />
<div>AAA<br />BBB<br />CCC</div><br />
hoge<br />hoge<br />
<div>DDD<br />EEE<br />FFF</div>
</body></html>
●希望する結果
<html><body>hoge<br />hoge<br />
<div>AAA BBB CCC</div><br />
hoge<br />hoge<br />
<div>DDD EEE FFF</div>
</body></html>
- 22 :デフォルトの名無しさん:2014/11/10(月) 00:28:51.99 ID:FEGsNsu6.net
- 秀丸の仕様を調べようとしたらマニュアルが有料だった。
\Gが使えれば一行で書けるけど果たして・・
- 23 :デフォルトの名無しさん:2014/11/10(月) 01:08:32.85 ID:qr2IepUu.net
- >>22
ググってみたところhmJre.dllには無さそうだけど
http://www.shuiren.org/chuden/teach/hidemaru/seiki/03.htm
http://hidemaruo.mydns.jp:81/helpsite/hmjre/html/0003_ABOUT_REGULAR.html
bregonig.dllを使うこともできるようだから何とかなるだろう
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
2. 動作環境
秀丸エディタ Ver7.00 + BRegIf.DLL v0,0,2,2
- 24 :デフォルトの名無しさん:2014/11/10(月) 01:35:58.09 ID:aSJ0dFtw.net
- bbq
- 25 :デフォルトの名無しさん:2014/11/10(月) 14:59:48.59 ID:FEGsNsu6.net
- >>23
調べてくれてありがとう。鬼車系が使えるなら余裕だ。
>>6
テンプレのURLを修正
鬼雲
https://github.com/k-takata/Onigmo/blob/master/doc/RE.ja
- 26 :デフォルトの名無しさん:2014/11/11(火) 01:47:12.80 ID:vVlDZA0+.net
- >>6
鬼雲: 鬼車にない新機能
https://github.com/k-takata/Onigmo/blob/master/README.ja
- 27 :デフォルトの名無しさん:2014/11/11(火) 16:32:51.30 ID:OuKhhQWg.net
- お願いします
.?l.?i.?b.?e.?r.?t.?y.?a.?r.?t.?w.?o.?r.?x.?\.?.?c.?o.?m.?/
なんてどうかと思ったけど凄いアホみたいだし、よく見たらドメインしょっちゅう変えてるみたいだし
●Regular Expressionの使用環境
2chMate
●検索か置換か?
検索
●説明
業者レスを消したい
●対象データ
例)
http://pele.bbspink.com/test/read.cgi/ascii2d/1413607695/200
http://pele.bbspink.com/test/read.cgi/ascii2d/1410920802/652
http://pele.bbspink.com/test/read.cgi/ascii2d/1410920802/645
http://pele.bbspink.com/test/read.cgi/ascii2d/1402236462/576
576 名無したん(;´Д`)ハァハァ sage 2014/11/11(火) 16:17:23.41 ID:EYXdTvKd
こんな俺でも気づいたら出来た。
もう寂しくないね
一足早い、自分への冬のボーナスだな
libertyartw☆orx.c☆om/spggo5/1111.jpg
☆ヌキ
- 28 :デフォルトの名無しさん:2014/11/11(火) 17:08:07.86 ID:+nD4yl+9.net
- ☆
- 29 :デフォルトの名無しさん:2014/11/11(火) 18:35:52.91 ID:9wYSIIRx.net
- [a-z.]*[☆骨][a-z.]*
☆や骨だけでもNGになってしまうが
少々の誤爆ぐらいなんでもないだろ
- 30 :デフォルトの名無しさん:2014/11/11(火) 18:38:46.86 ID:9wYSIIRx.net
- 「☆取って」とか「☆ヌキ」とかに注目した方がバリエーション少ないかもしれんな
- 31 :デフォルトの名無しさん:2014/11/11(火) 19:45:00.54 ID:2mNocMnH.net
- >>28
ちょっと誤爆が怖いです
>>29
ありがとうございます。*を+にして様子見ます
- 32 :デフォルトの名無しさん:2014/11/11(火) 22:22:33.00 ID:ri79zur0.net
- でもそれって暫くしたら削除されてるよね?
- 33 :デフォルトの名無しさん:2014/11/11(火) 22:33:19.94 ID:le80kSgY.net
- 先に☆消してしまえばいくね?
- 34 :デフォルトの名無しさん:2014/11/12(水) 07:33:37.69 ID://gO2nAo.net
- 性器表現てちんぽまんこだね
- 35 :デフォルトの名無しさん:2014/11/12(水) 12:59:24.43 ID:b8dDlQST.net
- Jane用の正規表現だけど↓のスレでも似たような文面のマッチングやってるからそれ使えば
http://mattari.plusvip.jp/test/read.cgi/jane2ch/1387830864
- 36 :デフォルトの名無しさん:2014/11/13(木) 04:55:17.80 ID:7fDObI11.net
- 秀丸の正規表現 (hmonig.dll) のメモ
http://akiba.geocities.jp/hp20140401/2014/009.html
>>21
もういないかな。
(?:<div\b|\G(?!\A))(?:(?!</?div\b|<br\b)\X)*\K<br\b[^>]*>(?#\n\n\n\n\n\n\n\n\n\n)
これでマッチしない場合は \n の数を増やすとマッチするかも。
- 37 :デフォルトの名無しさん:2014/11/13(木) 05:01:04.31 ID:7fDObI11.net
- あ、置換欄は半角スペ1個ね。
- 38 :デフォルトの名無しさん:2014/11/13(木) 09:17:28.22 ID:GSTkYFB0.net
-
- 39 :デフォルトの名無しさん:2014/11/13(木) 13:18:22.20 ID:Y2Hw988G.net
- >>36
\nがみにくい
(?#maxlines:10)でいいだろ
- 40 :デフォルトの名無しさん:2014/11/13(木) 13:59:12.11 ID:7fDObI11.net
- >>39
ぶw そんなのがあったのね、指摘ありがとう。
コメントに\nを並べるというアイデアは既にあるだろうとは思ってたけど
作者がこういう形で対応していたとは・・。
- 41 :デフォルトの名無しさん:2014/11/14(金) 00:56:55.55 ID:UkSSspXB.net
- >>36
横からすみませんがPHPでどう書くか教えていただけませんか?
- 42 :デフォルトの名無しさん:2014/11/14(金) 01:41:37.51 ID:1+T9Ha44.net
- >>41
秀丸特有の問題なのにPHPでの解決法を聞かれてもなぁ…
行跨ぎできないのだとしても、プログラミング言語なら改行消して処理しろで終わりだし。
- 43 :デフォルトの名無しさん:2014/11/14(金) 02:00:41.77 ID:IxUEtMym.net
- そうでなく、1行の正規表現で置換するやり方を知りたいんじゃないかな。
\G ・・・ 文頭、または前回マッチした文字列の直後の位置にマッチする
前回マッチした文字列のみにマッチさせたい場合、\G(?!\A) と書く。
\K ・・・ これより前にある正規表現にマッチした文字列をマッチ文字列に含めない
\A ・・・ 文頭のみにマッチする。行頭にはマッチしない。
\X ・・・ 改行文字を含む任意の1文字にマッチする。
(?# ) ・・・ (?# この部分はコメントとして無視されます )
\X 以外はPHPでも同じじゃないかな? \X を (?:.|[\r\n]) に書き換えるだけで動くはず。(たぶん)
最後のコメントは秀丸用のおまじないなのでPHPにはいりません。(~-~)b
- 44 :デフォルトの名無しさん:2014/11/14(金) 20:23:32.42 ID:UkSSspXB.net
- >>43
おお
ちゃんと動きました!
感謝です
似たような事で詰まってたので非常に助かりました
- 45 :デフォルトの名無しさん:2014/11/14(金) 20:43:12.93 ID:MnmxP/GB.net
- なるほど
- 46 :デフォルトの名無しさん:2014/11/14(金) 20:55:47.58 ID:DTSyJ1hY.net
- d
- 47 :デフォルトの名無しさん:2014/11/14(金) 22:25:06.90 ID:IxUEtMym.net
- (~-~)b
- 48 :デフォルトの名無しさん:2014/11/14(金) 22:33:50.86 ID:ptj087p2.net
- 任意の1文字にマッチは普通[\s\S]って書かないか?
- 49 :デフォルトの名無しさん:2014/11/14(金) 22:37:22.10 ID:IxUEtMym.net
- 説明めんどうだからああ書いたけどPHPならオプションでピリオドの動作を替えられる。
- 50 :デフォルトの名無しさん:2014/11/14(金) 22:52:08.85 ID:IxUEtMym.net
- >>36の正規表現も分かりやすいようにカッコをまとめたりしないように書いた。
やろうと思えばもっと処理の軽い書き方も出来る。
- 51 :デフォルトの名無しさん:2014/12/09(火) 22:48:29.34 ID:HBMBEtpF.net
- あいうabcえお
\<abc\>
がマッチしないのはなぜですか?
- 52 :デフォルトの名無しさん:2014/12/10(水) 00:25:21.40 ID:aGgAMtGi.net
- うわあ
- 53 :デフォルトの名無しさん:2014/12/10(水) 04:22:10.09 ID:vJvh8GaS.net
- \を使ったエスケープ文字は、特定のものしか使えない
\<,\> こういうエスケープ文字があるかね?
無ければエスケープされずに、<,> と解釈されるだけ
つまり、\<abc\> → <abc>
- 54 :デフォルトの名無しさん:2014/12/10(水) 05:03:04.97 ID:HaQsk3gz.net
- www
- 55 :デフォルトの名無しさん:2014/12/10(水) 05:31:24.35 ID:7sJsZ3GA.net
- わろた
- 56 :デフォルトの名無しさん:2014/12/10(水) 07:49:49.52 ID:qwB6bqKA.net
- >>51
[あーお]も単語構成文字と見做す処理系だとマッチしないな。
- 57 :デフォルトの名無しさん:2014/12/10(水) 07:50:17.57 ID:qwB6bqKA.net
- >>51
[あーお]も単語構成文字と見做す処理系だとマッチしないな。
- 58 :デフォルトの名無しさん:2014/12/10(水) 18:29:36.14 ID:aGgAMtGi.net
- >>51
[あーお]も単語構成文字と見做す処理系だとマッチしないな。
- 59 :デフォルトの名無しさん:2014/12/10(水) 20:58:37.52 ID:Lctd7lUm.net
- ああおさんウザいっす
- 60 :デフォルトの名無しさん:2014/12/14(日) 23:54:23.95 ID:tpBHSSwh.net
- _Abc
_Xyz
にはマッチするけど
_ABCにはマッチしない正規表現おしえて
- 61 :デフォルトの名無しさん:2014/12/14(日) 23:58:08.06 ID:g1m5xeWZ.net
- (_Abc|_Xyz)
じゃダメかしらん?
- 62 :デフォルトの名無しさん:2014/12/15(月) 15:37:38.43 ID:oa6oH0LD.net
- >>60
lookaheadが使用可能なら「_(?!ABC).+」
でも_ABCDもマッチさせるとかであればわからない
- 63 :デフォルトの名無しさん:2014/12/27(土) 14:04:42.15 ID:BGpvdfNM.net
- ●Regular Expressionの使用環境
Ruby
●検索か置換か?
検索
●説明
(ひらがな、カタカナ、漢字、英数字(全角/半角)、","(全角/半角)、"."(全角/半角))のみの文字列を抽出したい
●対象データ
1不思議な2新聞3
.に書,いて.ある,
+通り-に行/動し*た結果
憧れ(の)同級生と…
●希望する結果
1不思議な2新聞3
.に書,いて.ある,
よろしくお願いします。
- 64 :デフォルトの名無しさん:2014/12/27(土) 15:37:10.79 ID:8H3WtYVY.net
- /\A[ここにマッチさせたいものを全部書く]+\z/
- 65 :デフォルトの名無しさん:2014/12/27(土) 16:24:38.35 ID:BGpvdfNM.net
- >>64
ありがとうございます。
うまくできました。
- 66 :デフォルトの名無しさん:2015/01/02(金) 21:45:08.35 ID:v2/hSox9.net
- ●Regular Expressionの使用環境
Ruby
●検索か置換か?
検索
●説明
後ろ向きの最短一致をさせたい
●対象データ
<a>あいう<b>123</b>えお</a><a>かきく<b>456</b>けこ</a>
●希望する結果
456で検索して
<a>かきく<b>456</b>けこ</a>
よろしくお願いします。
- 67 :デフォルトの名無しさん:2015/01/03(土) 03:21:52.63 ID:ssBgeI0p.net
- >>6の一番下のタグの中に「ある文字列」を含まない正規表現
- 68 : 【ニダー】 :2015/01/03(土) 06:50:23.28 ID:OaaIU2j6.net
- !omikuji
- 69 :デフォルトの名無しさん:2015/01/11(日) 23:11:27.03 ID:s5YQ0YAX.net
- ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
置換
●説明
謹賀新年hogehoge>
↓
謹賀新年>
ランダムな文字列であるhogehogeを一括で消す
突っ込みどころあると思いますがどうかよろしくお願いします。
●対象データ
謹賀新年hogehoge>
ランダムな文字列:hogehoge
●希望する結果
謹賀新年>
- 70 :デフォルトの名無しさん:2015/01/11(日) 23:54:03.51 ID:UU82qEam.net
- ランダムな文字列というからにはhogehogeはいろいろ変化するんだよね
謹賀新年と>は固定でいいの?
- 71 :デフォルトの名無しさん:2015/01/11(日) 23:57:48.34 ID:s5YQ0YAX.net
- ハイ!
- 72 :デフォルトの名無しさん:2015/01/12(月) 00:26:59.54 ID:+TbEDHOy.net
- だったら難しいことは何もないような・・・
置換前:(謹賀新年).*?(>)
置換後:$1$2
- 73 :デフォルトの名無しさん:2015/01/12(月) 02:23:55.74 ID:6K5npcv7.net
- ありがとうございます
- 74 :デフォルトの名無しさん:2015/01/13(火) 11:11:49.58 ID:ZSJSYGMP.net
- テスト
- 75 :デフォルトの名無しさん:2015/01/13(火) 11:15:11.62 ID:ZSJSYGMP.net
- 何故か書き込めないのでテキストファイルでアップしました
http://www.dotup.org/uploda/www.dotup.org104566.txt
宜しくお願いします
- 76 :デフォルトの名無しさん:2015/01/13(火) 13:20:35.50 ID:kceTGmH6.net
- 分かりやすく言えば
1、 「スペース2つ」 を区切りとして、前、後 の2つに分断する。
2、 その 前 のみを取り出す
という処理。
これによってスペース2つが出現するまでの文字列が出力される。
- 77 :デフォルトの名無しさん:2015/01/13(火) 14:16:20.33 ID:ZSJSYGMP.net
- >>76
ありがとうございます
@番目の
「スペース2つ」→\s\s
「分ける」がどれに当たるのでしょうか?
ググってもsplitのページがヒットしてしまいます
A番目の
「前のみ」はどれに当たるのでしょうか?
「正規表現」でググると
JavaやPHPなど高度なプログラミングみたいのがヒットしてしまうのですが
「正規表現」にも多種あるようですが
自分のやろうとしている「正規表現」はなんて検索すればいいのでしょう?
宜しくお願いします
- 78 :デフォルトの名無しさん:2015/01/13(火) 17:09:16.81 ID:FS/vx9x/.net
- >> 74
> Taskerのスレで下記の様な正規表現でアドバイス戴けたのですが
> その意味が解らないので解説頂けないでしょうか?
> (.*?)\s\s.*
> 自分なりに調べたのですが理解できませんでした
> (.*?)→0文字に一致?それとも0文字を$1に格納?
> \s\s.*→2つのスペースに0文字以上の文字?
例えば、正規表現が `.\s' なら、何か1文字とそれに続く空白文字1文字にマッチする
これを >>76 が言った言い方だと、空白文字1文字と、その前の何か1文字にマッチする
前のみっていうのは、文字の位置的に `\s\s' の前に `(.*?)' が有るから
少しくどくなるが、`(.*?)\s\s.*' の場合、検索を始めた箇所(最初は先頭)から、
`.': 改行以外の任意のある文字、一文字に一致する
`*?': その一致するものは無くてもいいけど、何か文字が有ればずーっと文末まで一致する
...では無くて、`\s\s'の手前までの全てに一致する
`?' 無しの `.*' だと、一致したもののうち一番長いものを採用し、途中の`\s\s'は`.*' に含まれてしまうが、
`?' が付いていると、最初に見つかった`\s\s'を採用して、その手前までになる
`\s\s': で、空白文字の2文字に一致し、以下略
ココら辺で、遊んでみれば。(さくらが咲いてますよって出るので、comにしてある)
scriptular.com
rubular.com
regexr.com
公式Userguideはここっぽいね。使える正規表現も書いてあった
http://tasker.dinglisch.net/userguide_summary.html#matching.html
#Pattern Matching ##Regular Expression Matching ###Matching Rules
- 79 :デフォルトの名無しさん:2015/01/13(火) 17:31:32.72 ID:ZSJSYGMP.net
- >>78
詳しい解説とtxtファイルの引用まで本当にありがとうございます!
`\s'などの個々の意味までは調べて理解できたのですが
その組合わせとなると本当に難しいです
解説頂いた`(.*?)'部分をコピペ保存し整理しながら読みといてみたいと思います
本当にありがとうございました
- 80 :デフォルトの名無しさん:2015/01/13(火) 18:22:05.65 ID:ZSJSYGMP.net
- 当初↓のサイトとにらめっこし理解に苦しんでいたのですが
http://msdn.microsoft.com/ja-jp/library/cc392020.aspx
具体的な詳しい解説をして下さっ
たので理解できました!
今回の↓を正規表現にすると
[メールアドレス](スペース)[件名]
.*?\s.*と表現でき
.*→全ての文字列に一致してしまうが?を付加で最少の文字列を採用させる
それは\sまで
また()で一致した[メールアドレス]部分を記憶させる
という具合なんですね
今回の様に[メールアドレス]部分のみを記憶したいのであれば
(.*?)\sだけで
.*は要らないのでしょうか?
また()で記憶した[メールアドレス]を呼び出したい場合は
$0指定で合ってますでしょうか?
- 81 :デフォルトの名無しさん:2015/01/14(水) 01:39:07.16 ID:SHHyvNBq.net
- > 今回の様に[メールアドレス]部分のみを記憶したいのであれば
> (.*?)\sだけで.*は要らないのでしょうか?
実際のデータが[メールアドレス](スペース)[件名]では
`(.*?)\s\s.*' では `\s\s' の部分がマッチしないと思うんだけど、
実際のデータが[メールアドレス](スペース)[件名]で合っているなら、要らないんじゃないか
私なら、先頭に `^' も付けて、また確実にスペース1つならば、\sより、` 'にして
結果、`^(.*?) ' とか、`^([^ ]*) ' にする。しかし、試せないので...実際に試してみて
> また()で記憶した[メールアドレス]を呼び出したい場合は$0指定で合ってますでしょうか?
一般的に $0 はマッチした文字列全体を、$1 は最初のカッコでマッチした文字を参照するので
`(.*?)\s' や `^([^ ]*) ' ならば、$1でしょう。$0ならスペースも含まれる
`$1'に置換する所を、`===>$0<===' に置換するようにして表示してみれば違いが分かるかも
ところで、こんな記述を見つけた。K9メールは関係ないかもしれないけど、一応貼っときます
http://pralin.info/tasker/tasker_userguide/user_guide/variables.html
> Built-In Variables (組込み変数)
> 略
> Email From / Cc / Subject / Date / Time (‘K9メール’で受信したEメールに関する情報)
> (dynamic)
> %EFROM / %ECC / %ESUBJ / %EDATE / %ETIME
> K9アプリケーションで前回受信したEメールの、送信者、Cc、件名、受信日、時間です。
- 82 :デフォルトの名無しさん:2015/01/14(水) 02:04:04.04 ID:SHHyvNBq.net
- 訂正
私なら、略
結果、`^(.*?) ' とか、`^([^ ]*) ' に、もしくは、`^[^ ]*' にして、置換を `$0' にする
- 83 :デフォルトの名無しさん:2015/01/14(水) 05:30:44.58 ID:xEcaho2u.net
- 重い
- 84 :デフォルトの名無しさん:2015/01/14(水) 05:52:23.88 ID:C0oqSSBJ.net
- 不安定
- 85 :デフォルトの名無しさん:2015/01/14(水) 06:16:54.15 ID:C0oqSSBJ.net
- 不安定
- 86 :デフォルトの名無しさん:2015/01/14(水) 07:03:44.38 ID:qCW3djxi.net
- 本文が長すぎます
- 87 :デフォルトの名無しさん:2015/01/14(水) 07:09:40.66 ID:GdCbM//t.net
- >>81-82
低レベルな自分に
何度も丁寧に本当にありがとうございます
コピペ保存し後でじっくり読み解いてみたいと思います!
Androidメーラーである[K-9]を利用すれば手っ取り早いみたいなんですが
ActiveSyncプロトコルに対応していないので
Android標準メーラーで[From]を変数に格納し鳴り分けに取り組んでいます
その課程での正規表現でした
その難しさに圧倒されていますが
皆さんの教えで何とか理解し組んで動いた時の感動はひとしおです
- 88 :デフォルトの名無しさん:2015/01/14(水) 19:15:28.30 ID:GdCbM//t.net
- >>81-82
お世話になってます
追加で提案して頂いた正規表現
■`^([^ ]*) '→[スペース]ではない文字を0回以上[スペース]まで繰返し検索で()によるって$1に記憶
■`^[^ ]*'→[スペース]ではない文字を0回以上繰返し検索でその(全ての)結果が$0に記憶される←[スペース]入っていないのでそのまま使える
で合ってますかね?
追加の提案で理解が深められた気がします!
早速Taskerにて検証してみました
【表現】`(.*?)/s'
【結果】AAA@ezweb.ne.jp[件名]
【表現】`^([^ ]*) '
【結果】AAA@ezweb.ne.jp [件名]
【表現】`^[^ ]*'
【結果】AAA@ezweb.ne.jp [件名]
でした
これはTaskerの仕様で
全文を正規表現で表し
記憶させたい部分を()で指定しなければ駄目なので
敢えてT'[.*?]/s.*`と教え頂けたと学ぶことができました
本当に勉強になりました
ありがとうございました
(`・ω・´)ゞ多謝
- 89 :デフォルトの名無しさん:2015/01/15(木) 12:02:13.03 ID:wf767Mv0.net
- 検索と置換を間違えて嘘を教えた orz だけど、理解が進んだ様で良かった
> これはTaskerの仕様で
Taskerだけでなく、置換では、マッチしなかったものはそのまま残る。ごめん
例えば、Java
public class Sample{
public static void main(String []args){
String str = "ABC_ezwebNeJp KENMEI";
str = str.replaceFirst( "^(.*?) ", "==>$1<==" );
System.out.println( str );
// it prints "==>ABC_ezwebNeJp<==KENMEI"
}
}
sed では
$ echo 'ABC_ezwebNeJp KENMEI' | sed -e 's/^\([^ ]*\) /==>\1<==/'
==>ABC_ezwebNeJp<==KENMEI
書き込めなかったので ABC_ezwebNeJp にしてる
- 90 :デフォルトの名無しさん:2015/01/15(木) 20:39:57.84 ID:PKDwQvNb.net
- >>89
補足までありがとうございます
> 置換では、マッチしなかったものはそのまま残る。
テキストエディタなどでの置換をイメージすると
確かにおっしゃる通りの振る舞いですね
すっきりすることができました
最後まで本当にありがとうございました
- 91 :デフォルトの名無しさん:2015/01/17(土) 19:38:09.41 ID:O/W9cU3U.net
- お世話になっています
Taskerスレで当初教えて頂いた`\s\s'表現には
差出人がスペースを含めた名称を付けた場合の対処まで深く考えられたものでした
http://anago.2ch.net/test/read.cgi/applism/1417270634/442
高度な処理イメージをして組まなければならない世界なんですね
恐れ入りました(敬
- 92 :デフォルトの名無しさん:2015/01/17(土) 21:40:07.01 ID:IxqCDXNU.net
- >>91
\s\s の話は不思議に思って >>81 で、念を押してたんだけど、
まあこれも勉強でしょ
それよりも、ある程度完成したみたいで良かったね
- 93 :デフォルトの名無しさん:2015/01/17(土) 22:12:21.56 ID:O/W9cU3U.net
- >>92
先程完璧に完成することができました!
こちらのスレでのご教授のお陰でもあります
普段何気に利用しているソフトウェア
それを組み上げて作ってるプログラマの偉大さを今回痛感させられました
本当にありがとうございました
- 94 :デフォルトの名無しさん:2015/01/21(水) 23:31:05.33 ID:Xic+hwyG.net
- 連続するメタ文字"+()+"を正規表現でマッチさせたいとき
"\+\(\)\+"とやってますけど、範囲を指定してエスケープするにはどうすれば良いですか?
某サイトにあった"\Q+()+\E" では動きませんでした。エクセルVBAです。
- 95 :デフォルトの名無しさん:2015/01/22(木) 00:02:23.35 ID:I+VI4YxC.net
- ここを見る限りVBAではサポートされてないんじゃね
http://msdn.microsoft.com/ja-jp/library/ms974570.aspx
- 96 :デフォルトの名無しさん:2015/01/22(木) 13:36:09.30 ID:V7uGlpy4.net
- \+\(\)\+
- 97 :デフォルトの名無しさん:2015/01/22(木) 14:09:54.22 ID:V7uGlpy4.net
- すいません、「範囲を指定して」を見落としてたんで上のは取り消しで・・。
- 98 :デフォルトの名無しさん:2015/01/22(木) 16:22:30.24 ID:I+VI4YxC.net
- それを見落としたとして何故その回答になる
- 99 :デフォルトの名無しさん:2015/01/22(木) 16:41:37.50 ID:V7uGlpy4.net
- 無意識に適当に読んでたらしく
>連続するメタ文字"+()+"を正規表現でマッチさせたいときエスケープするにはどうすれば良いですか?
>某サイトにあった"\Q+()+\E" では動きませんでした。
という質問だと思って答えてしまった。環境くらい書いてよとか思ったけどしっかりVBAって書いてあったw
- 100 :デフォルトの名無しさん:2015/01/23(金) 20:13:44.42 ID:9tnFJzS/.net
- #include <iostream>
#include <regex>
#include <string>
#include <locale>
using namespace std;
void main()
{
wcout.imbue(locale("japanese"));
const wchar_t* input = L"Dim str As String = \"テスト。文字列の中に'がある\" 'コメント";
wcout << L"input ->" << input << L"<-" << endl;
const wchar_t* pattern = L"\'.*$";
const wchar_t* replacement = L"";
wregex re(pattern);
wstring result = regex_replace(input, re, replacement);
wcout << L"result->" << result << L"<-" << endl;
}
VB.NETのソースからコメントを全部取り除くプログラムをVC++2013のwregexで
作ってみたのですが、文字列の中にあるシングルクオーテーションにもマッチ
してしまいます。これを回避して、本来のコメントのみにマッチする表現を
教えて下さい。
- 101 :デフォルトの名無しさん:2015/01/23(金) 20:17:47.22 ID:9tnFJzS/.net
- ああ、それとコメントには ' 以外に REM で始まる行もコメントの
ようなので、それにも対応したようなのが出来れば最高です。
よろしくお願いsいます。
- 102 :デフォルトの名無しさん:2015/01/23(金) 21:10:32.13 ID:eFAAQwvF.net
- s
- 103 :デフォルトの名無しさん:2015/01/23(金) 21:23:49.57 ID:T+1A7YgE.net
- REM
- 104 :デフォルトの名無しさん:2015/01/23(金) 21:46:31.95 ID:/pjVQAK4.net
- 仕事を人に丸投げすんなよ。。。
つーかコメントは入れ子があるから無理
- 105 :デフォルトの名無しさん:2015/01/23(金) 21:51:48.65 ID:/pjVQAK4.net
- VBはブロックコメント無いのか
じゃあ
^\s*([Rr][Ee][Mm]|').*$
でいいんじゃね
- 106 :デフォルトの名無しさん:2015/01/23(金) 22:35:00.86 ID:Hr76SqrY.net
- >>100
そんなレベルで満足せずに
VBコンパイラ作れ
- 107 :デフォルトの名無しさん:2015/01/24(土) 09:28:11.06 ID:VaaHq///.net
- >>100
考え方だけ。クォートのものを優先してマッチさせる regexp を使う
クォートでマッチしたものは、置換しない
あまり考えないで書いたコードなので、適当に修正して下さい
const wchar_t* pattern = L"(\"[^"]*\")|('[^']*')|('.*$|REM.*$)";
const wchar_t* replacement = L"$1$2";
- 108 :デフォルトの名無しさん:2015/01/25(日) 00:26:25.13 ID:PYkp2Zoh.net
- >>107
教えていただいたパターンでいい感じでマッチしました。
大変ありがとうございます。
正規表現の初心者なので、教えていただいたパターンの意味が
今一つよく理解できていません。| ってOR の意味ですよね?
これでなんで期待通りの動きをするのか分らない。。。ああ難しい。
- 109 :デフォルトの名無しさん:2015/01/25(日) 02:57:07.01 ID:n/w7cTTn.net
- ひんと
$1→(\"[^"]*\")
$2→('[^']*')
$3→('.*$|REM.*$)
- 110 :デフォルトの名無しさん:2015/01/25(日) 06:56:11.09 ID:TpaFIK4z.net
- $1→(\"[^"]*\")
$2→('[^']*')
$3→('.*$|REM.*$)
$1は、"", "a", "abc"
$2は、'', 'a', 'abc'
$3は、', 'a, 'abc,
REM, REMa, REMabc,
- 111 :デフォルトの名無しさん:2015/01/25(日) 09:24:32.42 ID:giPZi5FN.net
- ややこしい
- 112 :デフォルトの名無しさん:2015/01/25(日) 09:46:27.44 ID:FlI9/mjR.net
- そんな事ないよ
- 113 :デフォルトの名無しさん:2015/01/25(日) 09:58:30.16 ID:qMB0fa9P.net
- 正規表現むずかしい
- 114 :デフォルトの名無しさん:2015/01/25(日) 11:38:26.01 ID:JhgO84F7.net
- 正規表現はずかしい
- 115 :デフォルトの名無しさん:2015/01/25(日) 12:20:38.68 ID:qMB0fa9P.net
- Regular Expression
- 116 :106:2015/01/25(日) 12:31:28.78 ID:nzAr/S0d.net
- >>108
それは Tasker の時の様にならずに良かった
> 分らない。。。ああ難しい。
.NET も含めて一般的な従来型NFAエンジンは、
A|B|C
だと、Aとマッチするか試み、ダメなら元に戻ってBを試す
const wchar_t* replacement = L"## 1: ==>$1<== ## 2: ==>$2<== ## 3: ==>$3<==";
とでもして、試せば理解できるかもよ
あと、ここら辺読めば
詳説正規表現
4.3 正規表現主導かテキスト主導か
4.3.1 正規表現主導型のNFAエンジン
https://books.google.co.jp/books?id=RJFJ2I-thlsC&lpg=PA177&ots=zXRiExOl30&dq=nfa%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%20dfa%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3&hl=ja&pg=PA217#v=onepage&q&f=false
正規表現の動作の詳細
https://msdn.microsoft.com/ja-jp/library/e347654k(v=vs.110).aspx
man 7 regex
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/regex.7.html
- 117 :デフォルトの名無しさん:2015/01/26(月) 15:50:46.51 ID:pD45ZdVE.net
- >>109>>110
>>116
詳しい解説ありがとうございます。その後、必死で正規表現を勉強している
のですが、なかなか進みません。
その過程で、VisualStudio2013では 肯定先読みとか肯定後読みとかが
使えないようなのですが
そういうのを使いたい場合には、Boostを使うしかないですか?
- 118 :デフォルトの名無しさん:2015/01/26(月) 16:26:04.50 ID:eCIxtoMN.net
- 正規表現は遊びながら覚えると面白いよ。難しく考えないほうがいい。
boostはperl並に強力な正規表現エンジンだからこれが使えるなら是非使おう。
- 119 :デフォルトの名無しさん:2015/01/26(月) 17:38:42.42 ID:oVT0PKMK.net
- > boostはperl並に強力な正規表現エンジン
- 120 :デフォルトの名無しさん:2015/02/02(月) 11:29:22.04 ID:DtWOP1ys.net
- 正規表現はテキストファイルの中にある次の二つの行を見付けて
//---ここから
//---ここまで削除
この範囲にある行(この二行も含む)を全部削除するような処理に使えますか?
c++のregexです。
- 121 :デフォルトの名無しさん:2015/02/02(月) 11:36:39.77 ID:EZQev4rj.net
- 「---ここから」とか「---ここまで削除」が付いてるなら可能じゃね?
ネストしてたら知らんけど
- 122 :デフォルトの名無しさん:2015/02/02(月) 11:39:40.72 ID:DtWOP1ys.net
- >>121
レスありがとうございます。ネストは無しです。
- 123 :デフォルトの名無しさん:2015/02/02(月) 12:45:55.80 ID:RH7feET7.net
- その程度なら正規表現使わないでも書けるだろうしその方が速くないか
- 124 :デフォルトの名無しさん:2015/02/02(月) 13:38:37.06 ID:8c110nuS.net
- >>120
質問に回答致します。
> 使えますか?
はい。
では次の方どうぞ。
- 125 :デフォルトの名無しさん:2015/02/03(火) 17:16:25.69 ID:T6BqtAUV.net
- これが、ベストアンサー
>>123
- 126 :デフォルトの名無しさん:2015/02/19(木) 16:10:49.61 ID:a/uQUW78.net
- rubyで下記の文字列から頭が■の部分だけを抜き出したいのですが、うまくできません。
"□あああ■いうえお□かきくけ■さしすせ□たちつて□となにぬ□ねの■はひふ□へほ"
理想の結果["■いうえお","■さしすせ","■はひふ"]
- 127 :デフォルトの名無しさん:2015/02/19(木) 18:27:15.60 ID:W1BgVy30.net
- >>126
■から□の直前までを抜き出す正規表現です
+ とか u は適当に修正
"□あああ■いうえお□かきくけ■さしすせ□たちつて□となにぬ□ねの■はひふ□へほ".
scan( /■[^□]+/u )
- 128 :デフォルトの名無しさん:2015/02/20(金) 09:05:16.00 ID:eLhLRYkP.net
- >>127
ありがとうございます。あっさりできました。
色々とごちゃごちゃ試しましたがこんなに単純にできるんですね。
- 129 :デフォルトの名無しさん:2015/02/23(月) 16:22:27.12 ID:Ux68NKC8.net
- >>126と似た感じなのですが、
rubyで下記文字列から円の前の金額部分を抜き出したいです。宜しくお願いします。
"123百万円(250ほげ)、285百万円(ほげ125)
1億2千3百万円
1,230万円(ほげ2000.12ほげ)
1,230,000円(2000.12ほげ)"
- 130 :デフォルトの名無しさん:2015/02/23(月) 16:30:14.61 ID:Ux68NKC8.net
- 自己レス>>129です。
できた気がしますが、こんなんで良いんでしょうか?
str.scan(/\d[^()]+?[億千百万]?円/)
- 131 :デフォルトの名無しさん:2015/02/24(火) 18:51:15.23 ID:07WHyE0z.net
- >>129
[億千百万]? の部分は、提示したデータだと、抜いても結果が変わらない
何かの考えがあって入れているのだと思うけど、その意図が今一つ不明
実際のデータが、示されたものと違うのかな?
> こんなんで良いんでしょうか?
上記の問題を検討した上でだが、実際のデータから希望の結果が出るなら
それで良いんじゃあないかと思います
あえてここで、何か答えるとすると
もしも、(...)で囲まれたほげ数字にも、円で終わるものが有ったりしてややこしくなるなら、
一度に処理しようとせずに、予め元のデータから(...)だけを削除しておくのも良い手だと思う
# `.*?' の代わりに `[^))]*' でも同じ。良く分からないから半角()も入れておいた
# 「円の前の金額部分」という事なので、円の手前までを抜き出したもの
# ちなみに、この scan() だけでも、今回の解答になっています
str.gsub( /[((].*?[))]/, '' ).scan( /[\d,億万千百]+?(?=円)/ )
- 132 :デフォルトの名無しさん:2015/02/24(火) 21:49:57.70 ID:3nVqEvm0.net
- >>129
テンプレすら読めないの?
- 133 :デフォルトの名無しさん:2015/02/24(火) 22:30:27.97 ID:22oMyd1b.net
- ●Regular Expressionの使用環境
Firefox 35.0.1
●検索か置換か?
検索
●説明
q=の後の検索ワードを抽出したいです
現在の正規表現がこうなっているんですが1行目の検索ワードが抽出できません
^http[s]?://([^.]+\.)?google\.([a-z]+\.?)+/[^?/]*\?(.*&)?(as_)?q=([^&]+)
どのように修正すればいいでしょうか?
●対象データ
https://www.google.co.jp/#q=てすと
https://www.google.co.jp/webhp?hl=ja#hl=ja&q=てすと
https://www.google.co.jp/?gws_rd=ssl#q=てすと
●希望する結果
てすと
てすと
てすと
よろしくお願いします
- 134 :デフォルトの名無しさん:2015/02/24(火) 22:35:07.88 ID:KGzF+WVu.net
- q=(.*)$
- 135 :デフォルトの名無しさん:2015/02/24(火) 23:08:17.07 ID:22oMyd1b.net
- >>134
ありがとうございました
- 136 :デフォルトの名無しさん:2015/02/24(火) 23:12:37.33 ID:22oMyd1b.net
- >>133の質問が色々と間違っていました
回答いただいた>>134さん申し訳ありません
すいませんが、改めて質問させてください
●Regular Expressionの使用環境
Firefox 35.0.1の拡張機能SearchBox Sync1.4.0
※拡張機能のSearchBox Sync1.4.0のページです
https://code.google.com/p/searchboxsync/wiki/HowTo
●検索か置換か?
検索
●説明
検索語句を抽出したいです
デフォルトではこうなっているのですが
^http[s]?://([^.]+\.)?google\.([a-z]+\.?)+/[^?/]*\?(.*&)?(as_)?q=([^&]+)
これだと2番目の検索語句が抽出できませんでした
●対象データ
https://www.google.co.jp/#q=あああ
https://www.google.co.jp/?gws_rd=ssl#q=いいい
https://www.google.co.jp/webhp?hl=ja#hl=ja&q=ううう
●希望する結果
あああ
いいい
ううう
度々すみませんが、よろしくお願いします
- 137 :135:2015/02/24(火) 23:14:28.24 ID:22oMyd1b.net
- >これだと2番目の検索語句が抽出できませんでした
紛らわしい書き方だったので補足です
2番目というのは対象データのこのことです
https://www.google.co.jp/?gws_rd=ssl#q=いいい
- 138 :デフォルトの名無しさん:2015/02/25(水) 00:46:10.59 ID:v34fXgPe.net
- そのアドオンは設定を変えてもリスタすると戻っちゃうからこっちに変えた方がいいよ
https://addons.mozilla.org/ja/firefox/addon/conform-searchboxwith-automati/
その上で正規表現をこう変える(後ろに#を追加)
[&?#]q=([^&#]+)
- 139 :135:2015/02/25(水) 01:05:33.84 ID:hHD/IuY8.net
- >>138
設定が元に戻るの気づきませんでした
代わりのアドオンまで教えてもらってありがとうございます!
さっそく使ってみたいと思います
どうもありがとうございました
- 140 :デフォルトの名無しさん:2015/02/25(水) 09:39:58.62 ID:q6hZn1+T.net
- >>131
>str.gsub( /[((].*?[))]/, '' ).scan( /[\d,億万千百]+?(?=円)/ )
よくわからない質問に回答いただきありがとうございます。
書いて頂いた式についてなんですが、(?=円)の表現は初めて見たのですがどんな意味なのでしょう?
- 141 :デフォルトの名無しさん:2015/02/25(水) 10:17:29.13 ID:l4DgES9U.net
- >>140
先読み
あとは自分でググれ
- 142 :デフォルトの名無しさん:2015/03/01(日) 15:50:28.44 ID:+/3fb9m1.net
- PHPでやってます。
mb_eregi("a(?!b|c)","ad"));
や
mb_eregi("a((?!b))","ad"));
の否定先読みがマッチするのは予期通りなのですが、
mb_eregi("a((?!b|?!c))","ad"));
がマッチしない理由がわかりません。どうしてでしょうか?
- 143 :141:2015/03/01(日) 15:52:19.09 ID:+/3fb9m1.net
- (末尾の「)」が多かったので訂正します)
PHPでやってます。
mb_eregi("a(?!b|c)", "ad");
や
mb_eregi("a((?!b))", "ad");
の否定先読みがマッチするのは予期通りなのですが、
mb_eregi("a((?!b|?!c))", "ad");
がマッチしない理由がわかりません。どうしてでしょうか?
- 144 :デフォルトの名無しさん:2015/03/01(日) 16:03:57.64 ID:Sga1DM1F.net
- http://d.hatena.ne.jp/a_bicky/20100530/1275195072
- 145 :デフォルトの名無しさん:2015/03/01(日) 16:51:00.43 ID:2LvLY08l.net
- ただの文法エラーじゃないの?
(?!)はグループの先頭にしか置けないと思うが
- 146 :141:2015/03/01(日) 20:20:08.60 ID:+/3fb9m1.net
- >>145
おおまさに。正規表現自体が無効だったらしく、
PHPのエラーログがありました。
PHP Warning: mb_eregi(): mbregex compile err: target of repeat operator is not specified
- 147 :デフォルトの名無しさん:2015/03/06(金) 15:42:56.91 ID:AIFKHCSQ.net
- JavaScriptです。
どうしても、できないので申し訳ないのですが、お尋ねします。
[キノコ] ⇒ たけのこ
という具合に[ ]をはずした上で、さらに文字列を置換したいです。
どのような正規表現を書けば良いのでせうか?
- 148 :デフォルトの名無しさん:2015/03/06(金) 16:42:47.64 ID:MdPyuokm.net
- 単に[]をエスケープしてないだけでは?
/\[キノコ\]/
/\[.*?\]/
- 149 :デフォルトの名無しさん:2015/03/09(月) 08:48:41.87 ID:p+uKF6zv.net
- >>148
やってみましたが、駄目でした。
[キノコ]⇒[たけのこたけのこたけのこ]
となってしまいました。
str.replace("/\[キノコ\]/","たけのこ")としてるのですが、どうも、自分の
今作りこんでるものでは、RE2構文でなければならないということのようです。
プレーンなJavascriptでは普通に置換ができました。ありがとうございます。
残念ですが、何か他の手段を考えてみます。
- 150 :デフォルトの名無しさん:2015/03/09(月) 12:24:04.78 ID:tyzQwAhL.net
- Google - RE2 構文
https://code.google.com/p/re2/wiki/Syntax
見たところそんなに違いは無さそう。もしかしたら "" で囲うから \ を \\ にしないといけないとか?
str.replace("/\\[キノコ\\]/","たけのこ")
- 151 :デフォルトの名無しさん:2015/03/09(月) 13:26:27.64 ID:p+uKF6zv.net
- >>150
どもです。
試してみました。そのままだと上手く行かなかったのですが、参考にして以下の
ようにしたら、うまくいきました。
str.replace("(\\[)(キノコ)(\\])","たけのこ");
/ではなく、()で前後の[]をエスケープするしょりを括るみたいでした。
見事置換が出来ました。大変感謝です。ありがとうございます。
- 152 :デフォルトの名無しさん:2015/03/09(月) 15:16:50.04 ID:tyzQwAhL.net
- それもしかしたらカッコいらないかもね。とりあえず出来て良かった、おつおつ。
- 153 :デフォルトの名無しさん:2015/03/09(月) 17:33:06.97 ID:WXngf1h3.net
- 正規表現の方は "" で括ってしまうより
str.replace(/\[キノコ\]/g, "たけのこ")
みたいな方が。
g や m や i などフラグも簡単だし。
"" で括らないと何かマズい?
- 154 :デフォルトの名無しさん:2015/03/09(月) 18:26:42.44 ID:gggD73W5.net
- >>153
> 今作りこんでるものでは、RE2構文でなければならないということのようです。
だそうなので、String.prototype.replaceが置き換えられてるんじゃね
- 155 :デフォルトの名無しさん:2015/03/09(月) 19:00:40.35 ID:WXngf1h3.net
- なるほど、スレ汚しスマヌ
- 156 :デフォルトの名無しさん:2015/03/11(水) 23:32:56.08 ID:ia4bkTQw.net
- //func();
// func();
func();
func();//
func(); //a
funcを検索する場合1,2行目はマッチして欲しくない
3,4,5行目はマッチして欲しいのですがどのような正規表現になりますか?
- 157 :デフォルトの名無しさん:2015/03/12(木) 00:40:54.76 ID:OrUkgFgz.net
- 正規表現は環境によって書き方が大きく変わるから答えようがない。
- 158 :デフォルトの名無しさん:2015/03/12(木) 00:42:07.75 ID:ncqMmrlm.net
- perl v5.16.3
- 159 :デフォルトの名無しさん:2015/03/12(木) 01:05:11.11 ID:hJJR3r36.net
- ^\s*foo();.*$
- 160 :デフォルトの名無しさん:2015/03/12(木) 02:18:29.02 ID:OrUkgFgz.net
- perlなら理想的なものが作れる。正規表現が好きな人向けの問題だから俺はあえてスルーして若手に手柄を譲ろう。
perlの正規表現をどこまで理解してるかがハッキリ分かる問題。一番優秀な答えには二重まるプレゼント。
- 161 :デフォルトの名無しさん:2015/03/12(木) 13:05:32.74 ID:Cvw5mFLW.net
- 否定戻り読み使えばいいだけ
- 162 :デフォルトの名無しさん:2015/03/12(木) 13:08:29.79 ID:Cvw5mFLW.net
- いや、>>159で充分だな
- 163 :デフォルトの名無しさん:2015/03/12(木) 14:53:31.61 ID:UJgM8iom.net
- 正規表現で、Perlでないと出来ないことって何だろう
- 164 :デフォルトの名無しさん:2015/03/12(木) 18:36:49.43 ID:f0lbXk4h.net
- ここで聞いたのが間違いだった
- 165 :デフォルトの名無しさん:2015/03/12(木) 19:28:48.79 ID:fK+G/Dp4.net
- 検索っていうらいだから、いくらなんでも^$で挟むのはまずいだろ
- 166 :デフォルトの名無しさん:2015/03/12(木) 19:39:17.37 ID:fK+G/Dp4.net
- ごめんmオプションつけとけばいいのか
- 167 :デフォルトの名無しさん:2015/03/12(木) 20:07:36.90 ID:UJgM8iom.net
- 環境によって書き方が大きく変わるっていうほどのことでもないし
あいつは何が言いたかったんだろうか
- 168 :デフォルトの名無しさん:2015/03/13(金) 00:39:53.55 ID:0j9+dGeK.net
- おそらくコメントの認識の問題だろう
/* */で括られた複数行の中に存在している場合とか
さらに/*か*/を//で無効にしてる場合とかを判定するだとか
- 169 :デフォルトの名無しさん:2015/03/13(金) 07:22:33.61 ID:Oaowwqwo.net
- >>156
/* func(); */ func();
はどうしますか
>>159
任意の関数を検索出来ませんね
- 170 :デフォルトの名無しさん:2015/03/13(金) 12:42:20.02 ID:jdiBuyPQ.net
- 顧客が本当に必要だったものを無視して
営業コンサルがウキウキして、仕様てんこ盛りし始めたな
- 171 :デフォルトの名無しさん:2015/03/13(金) 23:19:33.02 ID:86LBBVPV.net
- >>169
/* func(); */ func();
マッチして欲しいです。
/*
func();
*/
はマッチして欲しくないです。
- 172 :sage:2015/03/15(日) 00:56:26.46 ID:StzM3art.net
- その言語用のパーサーを使って下さい
はい次の方どうぞ
- 173 :デフォルトの名無しさん:2015/03/15(日) 01:13:35.90 ID:6p2wtnBO.net
- 先読みで、*/ の次の文字を読んで、
改行なら無視して、改行以外ならマッチ
- 174 :デフォルトの名無しさん:2015/03/15(日) 16:57:12.99 ID:N62PgpuL.net
- できました
- 175 :デフォルトの名無しさん:2015/03/15(日) 17:50:49.81 ID:yw9QDtq9.net
- ●Regular Expressionの使用環境
サクラエディタ 2.2.0.1
※bregonig.dll Ver.3.06 with Onigmo 5.15.0
●検索か置換か?
置換
●説明
[SR]という文字列を含まない行と空行を削除したいです
下記の2つの正規表現だと空行が消えません
^(?!.*\[SR\]).+\r?\n?
^(?!.*\[SR\]).*$
●対象データ
ABC[SR]123
DEF456
GHI[SR]789
●希望する結果
ABC[SR]123
GHI[SR]789
よろしくお願いします
- 176 :デフォルトの名無しさん:2015/03/15(日) 18:06:23.58 ID:2a7Fnea4.net
- >>175
^(?!.*\[SR\]).*\r?\n?
- 177 :174:2015/03/15(日) 18:24:24.58 ID:yw9QDtq9.net
- >>176
ありがとうございます
できました!
超助かりました
- 178 :デフォルトの名無しさん:2015/03/16(月) 00:27:36.85 ID:+/0omNd3.net
- このスレで素人には到底書けない物凄い正規表現をチョチョイと簡単に書ける人って、普段も仕事か何かで正規表現を買いているんですか?
- 179 :デフォルトの名無しさん:2015/03/16(月) 00:34:52.90 ID:oGjevCAQ.net
- このスレで素人には到底書けない物凄い正規表現なんて見たことない
- 180 :デフォルトの名無しさん:2015/03/16(月) 00:43:26.59 ID:lNl2kgwL.net
- 素人には書けないのは当然だが
物凄いってのは思いもよらないって意味なのか
括弧が多くて表現が長い
って意味なのか?
まあ具体的にそのレスを指し示して欲しい
- 181 :デフォルトの名無しさん:2015/03/18(水) 23:19:04.74 ID:nEf/0tSg.net
- ●Regular Expressionの使用環境
Jane Style 3.82
●検索か置換か?
検索
●説明
>を含むレスを抽出したい
>>のように2個連続しているものは除く
(>あ>>3のように1個だけ>のものを含んでいる場合は>>と2個連続しているものが含まれていてもOK
●対象データ
>>1
>2
>あ
>あ>>3
●希望する結果
>1
>あ
>あ>>3
よろしくお願いします
- 182 :デフォルトの名無しさん:2015/03/18(水) 23:20:15.95 ID:nEf/0tSg.net
- すいません、値が間違っていました
●対象データ
>>1
>2
>あ
>い>>3
●希望する結果
>2
>あ
>い>>3
- 183 :●:2015/03/18(水) 23:42:52.71 ID:hWX9f6cD.net
- etst
- 184 :デフォルトの名無しさん:2015/03/18(水) 23:51:47.50 ID:gHF05Ru2.net
- >>182
その環境ないので確認できないけどこれはどう
(^>[^>]|[^>]>[^>])
- 185 :デフォルトの名無しさん:2015/03/18(水) 23:55:54.10 ID:gHF05Ru2.net
- >>184
ああこれもあるかな
(^|[^>])>[^>]
- 186 :180:2015/03/19(木) 00:02:33.10 ID:6o9FjYpi.net
- >>184-185
ありがとうございます
どちらもダメでした
- 187 :デフォルトの名無しさん:2015/03/19(木) 04:11:16.71 ID:yurDzz1T.net
- >>186
(?<!>)>(?!>)
- 188 :180:2015/03/19(木) 11:59:06.19 ID:6o9FjYpi.net
- >>187
ありがとうございます
それでも駄目でした
- 189 :デフォルトの名無しさん:2015/03/19(木) 14:58:49.84 ID:Seludl+r.net
- 対象データは2ch等のdatだから
表示上は > に見えているだろうけど、実際のデータ上は > という特殊文字なので
(?<!>)>(?!>)
だけど上だとコストが高いのでもっと限定して
(?:^|<br>)\s?(?<!>)>(?!>)
>のみの行を含まないのなら、否定先読みにORで \s?(?:<br>|$) あたりを追加する
- 190 :デフォルトの名無しさん:2015/03/20(金) 03:44:02.70 ID:hgnjF325.net
- 「ログから検索」 で検索してみると何やらおかしなことになるね。
これはstyleの(janeの?)不具合っぽいなぁ。
スレッド内でのレス抽出なら>>187でちゃんと動作したよ。
これで駄目ってことは検索モードが正規表現になってない可能性。
styleで検索と言っても検索する場所とかによって動作が異なるので何がしたのか
もっと具体的に書いたほうがいいかもね。
> だけ検索したいという目的も意味不明だし。
- 191 :デフォルトの名無しさん:2015/03/20(金) 04:19:42.25 ID:fLJyjAcG.net
- >>190
>>137とか>>140とか>>154とかの参照を抽出したいのかなあ?
でも参照記号に>>や>を使う人も多いしなあ
ところで、レス抽出で検索対象を指定する(本文のみ)にするとマッチしなくなる
どうやら、検索対象指定なし時は表示(変換後)のテキストに対して行われ、
検索対象指定時はdatのデータに対して行われる気がする
- 192 :デフォルトの名無しさん:2015/03/20(金) 08:22:56.34 ID:wZXAHl4b.net
- >>190
わかります
- 193 :180:2015/03/20(金) 08:39:56.17 ID:y3MGGk5K.net
- >>189
ありがとうございます
無事できました
どうもありがとうございました!
>>191
ありがとうございます
>>ではなくて>と半角で1個だけ使っている人のレスを抽出したかったんです
教えていただいた通り、本文のみのチェックが入っていたので、
それを外したら>>187の書き方でも抽出できました
どうもありがとうございました
- 194 :デフォルトの名無しさん:2015/03/21(土) 19:01:44.06 ID:7+ji4sYH.net
- 回答する側はどんだけすっとんきょうなこといっても馬鹿にされないが
質問する側・・・
- 195 :デフォルトの名無しさん:2015/03/29(日) 15:57:35.71 ID:sGWjXeUb.net
- あぼーんワードとして正規表現を使いたいのですがどう書けばいいのか教えてください。
多数のあらし文章に同一ワードが含まれているのですが、表記を多彩に変えられて困っております。
一発で表現できれば嬉しいのですが。。。
アスタリスク
アスタリスク
ア ス タ リ ス ク
ア ス タ リ ス ク
こんな感じで一部スペースが抜けたりもします。
よろしくお願いいたします。
- 196 :デフォルトの名無しさん:2015/03/29(日) 16:35:40.16 ID:fhlFwjS4.net
- >>195
[アア][ ]?[スス][ ]?[タタ][ ]?[リリ][ ]?[スス][ ]?[クク]
- 197 :デフォルトの名無しさん:2015/03/29(日) 21:22:59.17 ID:sGWjXeUb.net
- なるほど。
半角全角はそう対処すればいいのか!
ありがとうございましたm(__)m
- 198 :デフォルトの名無しさん:2015/03/30(月) 20:11:03.91 ID:Z/xNzUYF.net
- 1
22
333
4444
を
0001
0022
0333
4444
に一発で置換したいのですが、教えてください。
perl v5.16.3
- 199 :デフォルトの名無しさん:2015/03/31(火) 10:16:44.66 ID:t/ADQHOp.net
- my $str="1 22 333 4444 10000001";
$str =~ s/(?<!\d)\d{1,3}+(?!\d)/sprintf("%04d", ${^MATCH})/page;
### dbug ###
# $str =~ s/(?<!\d)\d{1,3}+(?!\d)/Hit/ag;
print "$str\n";
- 200 :デフォルトの名無しさん:2015/03/31(火) 20:42:21.04 ID:ytppRCf1.net
- my $str="1 22 333 4444 10000001"; でありません
my $str="1\n22\n333\n4444\n10000001";ですが・・・
- 201 :デフォルトの名無しさん:2015/03/31(火) 21:02:18.20 ID:t/ADQHOp.net
- my $str="1\n22\n333\n4444\n10000001";
$str =~ s/^\d{1,3}+$/sprintf("%04d", ${^MATCH})/gamep;
### dbug ###
# $str =~ s/^\d{1,3}+$/Hit/agm;
print "$str\n";
- 202 :デフォルトの名無しさん:2015/04/08(水) 15:07:15.55 ID:1V6iFpR8G
- Mac OS9の検索置換ラクダV1.01ですが、アルファベットの大文字・小文字を区別してくれません。
例えば
m→MAC
M→WIN
としたい場合、どのように記述すれば良いでしょうか?
m (tab) WIN (tab) regex
M (tab) MAC (tab) regex
とすると、mMというテキストがWINWINとなってしまいます。
- 203 :デフォルトの名無しさん:2015/04/08(水) 15:24:00.46 ID:7kPiyNnQ+
- Perlスレのalarmが使えない(WindowsMe以前)というのもアレだが、
Mac OS9というのもアレだな。
- 204 :デフォルトの名無しさん:2015/04/13(月) 08:00:29.98 ID:t7Zq3a8zZ
- 正規表現で苦労したのはHTMLの要素取得とか苦労したなぁ
いつも力業で何とかしてきたが、汎用性持たせてどんな条件でもって考え始めるときりがないっていう
- 205 :デフォルトの名無しさん:2015/04/18(土) 02:20:40.18 ID:22kkEc4d.net
- http://hello.2ch.net/test/read.cgi/don/1423787011/853
これを正規表現であぼーんしたいのですが、
梶[ \.\r\n]*谷[ \.\r\n]*こ[ \.\r\n]*う[ \.\r\n]*い[ \.\r\n]*ち
これで消えません。
どこがおかしいのでしょうか?
- 206 :デフォルトの名無しさん:2015/04/18(土) 02:47:14.20 ID:+F+Y74gF.net
- ◯.*?\n.*?谷.*?\n.*?こ.*?\n.*?う.*?\n.*?い.*?\n.*?ち
◯は「梶」
- 207 :デフォルトの名無しさん:2015/04/18(土) 03:01:53.88 ID:6N2YNk+s.net
- 専ブラ使ってんなら改行コードは前後に半角スペあるかないかの<br>あたりじゃね
- 208 :デフォルトの名無しさん:2015/04/18(土) 04:06:44.17 ID:22kkEc4d.net
- ビンゴです!
梶[ \.<br>]*谷[ \.<br>]*こ[ \.<br>]*う[ \.<br>]*い[ \.<br>]*ち
で消えました。
そういう思考の方向転換が苦手で簡単に思いつく人には憧れます。
羨ましいです。
ありがとうございました。
- 209 :デフォルトの名無しさん:2015/04/18(土) 04:42:14.33 ID:NS3YFS8E.net
- >>208
[<br>] とは、'<','b','r','>'のいずれかの文字1文字って意味だよん
- 210 :デフォルトの名無しさん:2015/04/18(土) 04:44:43.16 ID:+F+Y74gF.net
- 何かこういうアホ(ID:22kkEc4d)ってムカつくわ。
答えてしまって、おもくそ外れクジのカス引いたって感じ。
- 211 :デフォルトの名無しさん:2015/04/18(土) 05:15:09.62 ID:22kkEc4d.net
- >>209
それは理解してますがまあ今回は<br>でまとまってる必要もないのでこれで。
- 212 :デフォルトの名無しさん:2015/04/18(土) 05:38:17.56 ID:+F+Y74gF.net
- 人格障害だなこりゃ
- 213 :デフォルトの名無しさん:2015/04/18(土) 11:34:16.16 ID:Mv48Ucji.net
- 2chで句点つかう奴は変なのがほとんど
というか質問者はちゃんとお礼も言ってるしいいと思うけどな
- 214 :デフォルトの名無しさん:2015/04/18(土) 21:34:02.93 ID:UxcFTooC.net
- ID:+F+Y74gF
他人が自分の思った通りに動いてくれると思うな。逆だと思え。世間知らずのお坊ちゃん。
- 215 :デフォルトの名無しさん:2015/04/18(土) 23:12:07.46 ID:jCbWjNpY.net
- >>214
いまのところ説得力ないなぁw
- 216 :デフォルトの名無しさん:2015/04/18(土) 23:28:47.26 ID:pPlyK8fl.net
- >>215
いまのところ説得力あるなぁw
- 217 :デフォルトの名無しさん:2015/04/19(日) 01:11:24.52 ID:/mEOwbZx.net
- ID:22kkEc4d=ID:Mv48Ucji=ID:UxcFTooC=ID:pPlyK8fl
- 218 :デフォルトの名無しさん:2015/04/19(日) 02:30:44.91 ID:j+Z5lz0g.net
- 自分の答えた案が採用されなくてヒスッてるとかカッコワルイっすよセンパイ
- 219 :デフォルトの名無しさん:2015/04/19(日) 03:01:02.08 ID:/mEOwbZx.net
- ID:22kkEc4d=ID:Mv48Ucji=ID:UxcFTooC=ID:pPlyK8fl=ID:j+Z5lz0g
- 220 :デフォルトの名無しさん:2015/04/19(日) 07:21:40.39 ID:Ht8XqG2f.net
- 2chであぼーんと言えば専ブラって分かりそうなもんだけどな。なんで素人がドヤ顔で回答してるんだ?
- 221 :211:2015/04/19(日) 12:10:05.93 ID:1eQvFRx0.net
- あのセンパイマジパネェわ一生ついてくぜ!
- 222 :デフォルトの名無しさん:2015/04/19(日) 15:12:47.60 ID:oSoYgo+3.net
- >>220
確か、スマホかなんかやJane系以外の専ブラで<br>じゃなくて\nなのがあったよ
以前そういう質問が来てて、<br>のかわりに\nにしたらあぼーんできたとかがあった
- 223 :デフォルトの名無しさん:2015/04/19(日) 21:09:59.98 ID:Ht8XqG2f.net
- >>222
そういう例外もあるけどまずはbrで作るべきだな。
それ以前に質問者は最初から環境書けって話だが。
- 224 :デフォルトの名無しさん:2015/04/19(日) 21:15:38.60 ID:2jl66WDN.net
- 何なんだこの>>220>>223のしったかは?
尻尾見えてるのもわからん低能かね。
- 225 :デフォルトの名無しさん:2015/04/19(日) 21:44:47.47 ID:Ht8XqG2f.net
- なんだこの猿みたいな低俗な生き物は。さっさと森に帰りなさい。
- 226 :デフォルトの名無しさん:2015/04/22(水) 10:28:38.85 ID:ooPFFUWR.net
- はーい、おさるさんだよお
おさるさんはオナニーがだーいすきー
シコシコ シコシコ
でちゃいましたあああああ
- 227 :デフォルトの名無しさん:2015/04/22(水) 12:22:39.92 ID:IeAOuSb9.net
- マなんてなるもんじゃないな。いつ壊れるか分からん
- 228 :デフォルトの名無しさん:2015/04/22(水) 12:52:53.89 ID:7nBYsVZ4.net
- マ?
- 229 :デフォルトの名無しさん:2015/04/22(水) 13:16:13.29 ID:/oKtz/nP.net
- てs
- 230 :デフォルトの名無しさん:2015/04/22(水) 15:55:31.44 ID:p1XYlazF.net
- この粘着質の壊れっぷり、ID:Ht8XqG2f=質問者はどう見てもアウトだろ
- 231 :デフォルトの名無しさん:2015/04/22(水) 16:24:31.79 ID:ooPFFUWR.net
- >>230
こういう書込するって精神病なの?
どういう種類のクズなのかなぁ
- 232 :デフォルトの名無しさん:2015/04/22(水) 17:08:22.19 ID:JoTKe2Ih.net
- うわっスゲー反応早過ぎやんワロタ
- 233 :デフォルトの名無しさん:2015/04/22(水) 17:19:37.51 ID:uJ5rdeJj.net
- >>232
うわぁぁぁ!
単なるタイミングの問題を
あたかも待ち構えていた結果のように捉える書込み
お前、正直なところ三流校出のバカだろ?
- 234 :デフォルトの名無しさん:2015/04/22(水) 18:37:50.18 ID:IeAOuSb9.net
- 反応早いってのは3分以内の即レスのことだと思ってたが
- 235 :デフォルトの名無しさん:2015/04/22(水) 19:09:37.43 ID:uNA8aI7O.net
- 流れ的に質問者は完全にスルーしてるから粘着もクソも無い
むしろスルーされた方がネチネチしてるようにしか見えないかな
質問者もスルーせずにとりあえずありがとうって言っとけば揉めなかったかと
- 236 :デフォルトの名無しさん:2015/04/22(水) 19:28:21.42 ID:o5L/4a6p.net
- 何かややこしいな
- 237 :デフォルトの名無しさん:2015/04/22(水) 22:38:48.76 ID:XkZiXWpc.net
- ID:+F+Y74gF
http://health.merrymall.net/cc24_01.html
- 238 :デフォルトの名無しさん:2015/04/22(水) 23:02:35.14 ID:7y5euhIj.net
- 人格障害のサンプルが見られると聞いて
- 239 :デフォルトの名無しさん:2015/04/22(水) 23:23:23.48 ID:vB5eM/wE.net
- 人格障害って……
でも何となくキモいのはわかる
- 240 :デフォルトの名無しさん:2015/04/22(水) 23:51:45.81 ID:7y5euhIj.net
- てかここ何のスレよ?
- 241 :デフォルトの名無しさん:2015/04/23(木) 00:14:27.72 ID:IHo868ch.net
- 糞スレ
- 242 :デフォルトの名無しさん:2015/04/23(木) 00:16:21.37 ID:rgJFe9Rl.net
- 今盛んに書き込んでる粘着質が特にキモいからこんなことになってる
- 243 :デフォルトの名無しさん:2015/04/23(木) 00:27:07.32 ID:TW4vsH3m.net
- 良スレ
- 244 :デフォルトの名無しさん:2015/04/23(木) 00:40:51.61 ID:9y08pkDt.net
- 粘着すなや納豆野郎めキモイ臭い
- 245 :デフォルトの名無しさん:2015/05/03(日) 09:12:25.20 ID:W5pi5FGq.net
- 正規表現を使いたいことができたので調べ始めたんだけどまだよくわからん。難しいねw
素人感まるだしで悪いんだけど・・・・
たとえば、windows、windows7、windows8にはマッチするけどwindows9にはマッチしない
ってのをVBScriptで書きたい場合、どうすれば?
- 246 :デフォルトの名無しさん:2015/05/03(日) 12:26:13.02 ID:dtSDLNqf.net
- こういう質問をする時点でアレだからプログラミングを諦めたほうがいい。向いてない。
- 247 :デフォルトの名無しさん:2015/05/07(木) 01:03:12.79 ID:CSFF77Jn.net
- C++ソースコードのある識別子fooがコメントアウトされていないものだけ検索したい
どうかけばいいのかしらん
- 248 :デフォルトの名無しさん:2015/05/07(木) 04:38:47.99 ID:KWxpubgK.net
- (´・ω・`)
- 249 :デフォルトの名無しさん:2015/05/07(木) 04:50:46.29 ID:g+M5o00N.net
- <丶`∀´>
- 250 :デフォルトの名無しさん:2015/05/11(月) 17:38:17.53 ID:FHnjcDlC.net
- 5桁の半角数字のみの正規表現教えて
- 251 :デフォルトの名無しさん:2015/05/11(月) 18:26:38.36 ID:ms0beSWo.net
- [0123456789][0123456789][0123456789][0123456789][0123456789]
- 252 :デフォルトの名無しさん:2015/05/11(月) 19:02:35.37 ID:pzzpMI4X.net
- 乙
- 253 :デフォルトの名無しさん:2015/05/11(月) 19:19:56.77 ID:63MVUzJa.net
- 括弧があるじゃないかやり直し
- 254 :デフォルトの名無しさん:2015/05/11(月) 22:51:12.04 ID:evljERBy.net
- (?<!\d)\d{5}(?!\d)
- 255 :デフォルトの名無しさん:2015/05/12(火) 08:16:56.48 ID:Yu+KI6R4.net
- 12345
以下続く
- 256 :デフォルトの名無しさん:2015/05/15(金) 07:00:13.95 ID:w0X/ZpcK.net
- https://msdn.microsoft.com/ja-jp/library/bb982821.aspx
の
// (3) with wchar_t*
const wchar_t* target3 = L"2014-04-02";
wcmatch wideMatch2;
// LR"(...)" is a raw wide-string literal. Open and close parens
// are delimiters, not string elements.
wregex wrx2(LR"(\d{4}(-|/)\d{2}(-|/)\d{2})");
if (regex_match(target3, wideMatch2, wrx2))
{
wcout << L"Matching text: " << wideMatch2.str() << endl;
}
を改造して、
wregex wrx2(LR"((\d{4})(-|/)(\d{2})(-|/)(\d{2}))");
にしたら、マッチした部分文字列を取り出せたのですが、
取り出したいのは数字だけなのですが、不要なハイホンもマッチ結果に保管されます。
このハイホンはマッチ結果に保存しないようにすることは可能でしょうか?
(まあ、ハイホンが保管されても特に問題はないのですが)
よろしく。
- 257 :デフォルトの名無しさん:2015/05/15(金) 08:16:47.02 ID:TXnVGLlF.net
- $1$3$5と読み飛ばすだけでいいと思うけど気になるなら(?:-|/)
- 258 :デフォルトの名無しさん:2015/05/15(金) 09:02:09.61 ID:w0X/ZpcK.net
- 上手く行きました。
ありがとうございます。
- 259 :デフォルトの名無しさん:2015/05/15(金) 10:15:54.51 ID:aj2PgN2o.net
- 横d(´・ω・`)
- 260 :デフォルトの名無しさん:2015/05/15(金) 11:05:59.72 ID:w0X/ZpcK.net
- 追加で質問なのですが、
"2014-04-02-432-6563-423-12321-131"
"24-0-02-2-656"
みたいに、いくつかの数字がハイホンで連結されている場合には
wregex wrx2
の部分をどのように書けば、全ての数字をマッチ結果に保存できますか?
- 261 :デフォルトの名無しさん:2015/05/15(金) 11:24:01.68 ID:qhocNerh.net
- ハイフンをヌル置換じゃダメ
- 262 :デフォルトの名無しさん:2015/05/15(金) 11:58:58.81 ID:w0X/ZpcK.net
- >ハイフンをヌル置換じゃダメ
うまく行きませんでした。
数字の桁数が2ケタとか4ケタとか固定じゃなくて、
任意の場合の記述方法が分かりません。
- 263 :デフォルトの名無しさん:2015/05/15(金) 12:20:10.56 ID:aj2PgN2o.net
- だめか(´・ω・`)
- 264 :デフォルトの名無しさん:2015/05/15(金) 12:34:58.56 ID:eanAkoyi.net
- こーゆー事では無いの?
(\d*\d)
- 265 :デフォルトの名無しさん:2015/05/15(金) 12:49:41.72 ID:w0X/ZpcK.net
- wregex wrx2(LR"((\d*\d)(?:-)(\d*\d)(?:-)(\d*\d)(?:-)(\d*\d)(?:-)(\d*\d).*)");
って書いたら、最初の5つまでは取得できましたが、
これを任意の回数にマッチさせるパターンの書き方が分かりません。
- 266 :デフォルトの名無しさん:2015/05/15(金) 13:09:27.36 ID:eanAkoyi.net
- Cは全然知らないんだけど、(\d*\d) だけで全マッチさせて拾うのでは駄目なの?
- 267 :デフォルトの名無しさん:2015/05/15(金) 13:23:33.07 ID:n/oco/hf.net
- 知らんがな(´・ω・`)
- 268 :デフォルトの名無しさん:2015/05/15(金) 16:35:50.91 ID:XJBM+btE.net
- なにも一発で求めなくてもC言語ならループさせるなりどうとでもできるだろ
ハイフン込みでいいなら、([-\d]+)で求めて、-で分離するなり取り除くなりすればいい
- 269 :デフォルトの名無しさん:2015/05/15(金) 16:47:21.00 ID:XJBM+btE.net
- 数字で始まって-で繋がる数字で終わる文字列に限定するなら
(\d(?:\d|(?:-(?=\d)))+)
かな、もっと簡単に書ける気もするけど
- 270 :デフォルトの名無しさん:2015/05/15(金) 16:49:46.14 ID:XJBM+btE.net
- (\d(?:\d|(?:-(?=\d)))*)
- 271 :デフォルトの名無しさん:2015/05/15(金) 17:37:55.67 ID:w0X/ZpcK.net
- みなさん、いろいろとアドバイスありがとうございました。
自分でも試行錯誤しましたが、結局断念しました。
>>268
>なにも一発で求めなくてもC言語ならループさせるなりどうとでもできるだろ
そうですね。そうします。
- 272 :デフォルトの名無しさん:2015/05/15(金) 17:50:59.85 ID:WJgPFaVv.net
- (´・ω・)カワイソス
- 273 :デフォルトの名無しさん:2015/05/15(金) 18:03:13.11 ID:nH6peFvN.net
- (´・ω・)スパルタカス
- 274 :デフォルトの名無しさん:2015/05/16(土) 21:51:20.67 ID:waTp+O7j.net
- 日付形式にマッチする文字クラスみたいなのってある?
- 275 :デフォルトの名無しさん:2015/05/17(日) 22:05:02.97 ID:f7tBG1RD.net
- ないだろうね
- 276 :デフォルトの名無しさん:2015/05/17(日) 22:41:31.49 ID:F5DyJPEi.net
- (´・ω・`)ナイアルトテップ
- 277 :デフォルトの名無しさん:2015/05/17(日) 23:25:30.69 ID:NogDQirr.net
- クラスを自作することは出来る
- 278 :デフォルトの名無しさん:2015/05/18(月) 00:17:43.83 ID:aboaa/ud.net
- (´・ω・)カワイソス
- 279 :デフォルトの名無しさん:2015/05/18(月) 00:24:27.67 ID:NNjuzHYB.net
- ('A`)
- 280 :デフォルトの名無しさん:2015/05/18(月) 00:33:09.80 ID:PvUoWUSA.net
- てs
- 281 :デフォルトの名無しさん:2015/05/18(月) 00:44:01.62 ID:tlRKuzqk.net
- ( ^ω^)
- 282 :デフォルトの名無しさん:2015/05/18(月) 07:15:32.46 ID:/pm0ymIf.net
- ( ^ω^)
- 283 :デフォルトの名無しさん:2015/05/19(火) 17:40:59.30 ID:pDngogl+.net
- すいませんソフトスレでした質問なんですが、返答がなかったので、こちらでも質問させてください
正規表現の記述を出力し、テキストに一覧表示出来るソフトは無いでしょうか
例えば [山河篠][田崎][幸考]?太郎 と記述し、出力すると
山田太郎
山田幸太郎
山田考太郎
山崎太郎
山崎幸太郎
山崎考太郎
河崎太郎
河崎幸太郎
河崎考太郎
といった様に、可能性が有る組み合わせを、全て生成してくれるソフトです
文章から一致する文字列を抽出するのは、テキストエディタで出来るのですが、逆に生成してくれるソフトが中々見つかりません
Webサービスでも探しても見つからなかったのですが、やはり無いのでしょうか
- 284 :デフォルトの名無しさん:2015/05/19(火) 17:51:26.31 ID:RvvxxJQN.net
- >>283
汎用的なものは無いだろうと思う
ちょっと考えても.*とか[^山]*とかどうすりゃいいんだって感じだし
- 285 :デフォルトの名無しさん:2015/05/19(火) 18:04:14.09 ID:0y3JMzOX.net
- お題スレとかに書いたら作ってくれるんじゃねーの?
*とか+は なしで
- 286 :デフォルトの名無しさん:2015/05/19(火) 18:54:08.23 ID:qRFBYv8T.net
- >>283
何に使うんですか?
- 287 :デフォルトの名無しさん:2015/05/19(火) 19:59:18.66 ID:sIY+TIEW.net
- 犯罪の気配がする
- 288 :デフォルトの名無しさん:2015/05/19(火) 21:30:16.81 ID:b04N7yj8.net
- ブレース展開かませりゃいいよ
- 289 :デフォルトの名無しさん:2015/05/19(火) 21:55:47.03 ID:pDngogl+.net
- >>284
ですよね、そう思います
>>286
>>287
エクセル使ってる最中に出来たらいいなと思ってですね
確かに自動勧誘メールとかに悪用出来そうですよね、もちろんそんなつもりでは無いです
結構ググったんですが、やっぱりなさそうですね
- 290 :デフォルトの名無しさん:2015/05/20(水) 00:04:09.41 ID:Rygsv9Vj.net
- Python, Rubyの順列組合せでは出来ないの?
- 291 :デフォルトの名無しさん:2015/05/20(水) 00:19:29.37 ID:tL6MR9K5.net
- (´・ω・`)
- 292 :デフォルトの名無しさん:2015/05/20(水) 00:29:01.72 ID:HZUEcace.net
- ( ^ω^)
- 293 :デフォルトの名無しさん:2015/05/20(水) 00:42:56.86 ID:Hzr/Ms6e.net
- てs
- 294 :デフォルトの名無しさん:2015/05/20(水) 00:54:41.01 ID:UZQEX6U+.net
- fff
- 295 :デフォルトの名無しさん:2015/05/20(水) 01:04:00.54 ID:UZQEX6U+.net
- www
- 296 :デフォルトの名無しさん:2015/05/20(水) 01:16:00.03 ID:BBojVYXe.net
- 〈`-J-´〉
- 297 :デフォルトの名無しさん:2015/05/20(水) 01:31:29.02 ID:tL6MR9K5.net
- /(^o^)\
- 298 :デフォルトの名無しさん:2015/05/20(水) 01:42:35.44 ID:tVrKmL0A.net
- /^o^\
- 299 :デフォルトの名無しさん:2015/05/20(水) 01:46:38.43 ID:tVrKmL0A.net
- www
- 300 :デフォルトの名無しさん:2015/05/20(水) 01:56:02.65 ID:uXKQ4FyQ.net
- (´・ω・`)
- 301 :デフォルトの名無しさん:2015/05/20(水) 02:06:54.69 ID:aDjtDGP1.net
- ( ^ω^)
- 302 :デフォルトの名無しさん:2015/05/20(水) 02:26:42.09 ID:aDjtDGP1.net
- test
- 303 :デフォルトの名無しさん:2015/05/20(水) 11:08:00.51 ID:ArKPAS29.net
- excelなら
http://oshiete.goo.ne.jp/qa/8315974.html
- 304 :デフォルトの名無しさん:2015/05/20(水) 11:15:02.96 ID:aDjtDGP1.net
- てs
- 305 :デフォルトの名無しさん:2015/05/21(木) 21:53:31.71 ID:1cv2xDVM.net
- ●Regular Expressionの使用環境
Perl5互換
●検索か置換か?
検索
●説明
str1は()以外すべての文字
str2は()を含むすべての文字
●対象データ
str1(str2)
●希望する結果
str1とstr2を抽出
お願いします
- 306 :デフォルトの名無しさん:2015/05/21(木) 23:16:42.42 ID:tuJ/O346.net
- /([^()]+)\(([^()]*|(?R))\)/
- 307 :デフォルトの名無しさん:2015/05/21(木) 23:29:24.36 ID:aNkERRn/.net
- 入れ子はどうするの?
/* */などの複数行コメントの内外grepに通じるよく有る話題に通じるけど
素直にパースしたほうがシンプルなんだね
- 308 :デフォルトの名無しさん:2015/05/22(金) 00:06:17.92 ID:/kqqrT4G.net
- >>306
ありがとうございます
- 309 :デフォルトの名無しさん:2015/05/22(金) 00:20:32.24 ID:hdEJwUCo.net
- ('A`)
- 310 :デフォルトの名無しさん:2015/05/22(金) 00:26:20.27 ID:hdEJwUCo.net
- (´・ω・`)
- 311 :デフォルトの名無しさん:2015/05/22(金) 00:52:03.24 ID:btDGvIRc.net
- ( ^ω^)
- 312 :デフォルトの名無しさん:2015/05/26(火) 02:41:41.09 ID:9gI1t1nu.net
- . 以外の単語境界みたいな表現はどう書くのでしょうか?
要するに \bAAA\b だと
"AAA.BBB"
"CCC.AAA.BBB"
" AAA.BBB"
などの"AAA"にマッチしますが、私が必要なのは1番目と3番目であり、
前方に . のある2番目のAAAにはマッチさせたくないのです。
- 313 :デフォルトの名無しさん:2015/05/26(火) 03:25:13.06 ID:e/f1T0i0M
- /^\s*(AAA\b)/gm
- 314 :デフォルトの名無しさん:2015/05/26(火) 06:14:57.91 ID:EmTJSxVp.net
- ('A`)
- 315 :デフォルトの名無しさん:2015/05/26(火) 06:35:03.23 ID:/NwdkIp2.net
- テスト
- 316 :デフォルトの名無しさん:2015/05/26(火) 10:45:25.63 ID:4rWweJ5K.net
- (?<!\.)\bAAA\b
- 317 :デフォルトの名無しさん:2015/05/26(火) 10:51:38.63 ID:9gI1t1nu.net
- >>316
なるほど!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
さんきゅうーーーーーーーーーー
- 318 :デフォルトの名無しさん:2015/05/31(日) 05:22:51.08 ID:k76huIjd.net
- ●Regular Expressionの使用環境
PowerShell
●検索か置換か?
検索
●説明
日付表記を抽出したい
●対象データ
13.06.21 foo
7 february 2012 foo
foo 2015-06-04 bar
foo Jan 16, 2012
●希望する結果
13.06.21 foo
^^^^^^^^
7 february 2012 foo
^^^^^^^^^^^^^^^
foo 2015-06-04 bar
^^^^^^^^^^^
foo Jan 16, 2012
^^^^^^^^^^^^
これらは特にルールもなく作られたファイル名の一部ですが見づらいので表記を統一したいと思いました
変換は.NetのDateTimeクラスでやる予定なのでここでは年月日の区別なしに文字列の抽出のみが目的です
- 319 :デフォルトの名無しさん:2015/05/31(日) 08:57:58.87 ID:ikGkJsH4.net
- てs
- 320 :デフォルトの名無しさん:2015/05/31(日) 09:05:22.37 ID:EMPnbEd0.net
- てs(´・ω・`)
- 321 :デフォルトの名無しさん:2015/05/31(日) 09:13:45.78 ID:LVxbP9Fj.net
- hhh
- 322 :デフォルトの名無しさん:2015/06/01(月) 01:07:54.39 ID:KDj/YOE03
- >>318
> これらは特にルールもなく作られたファイル名
答え出てるじゃないのよ
愚直に列挙するしかない
- 323 :デフォルトの名無しさん:2015/06/01(月) 01:59:02.57 ID:CikCK20O.net
- VB.NETとかEXCELのVBAなどでは漢字、平仮名、カタカナなどを変数名に使ってもいいですよね。
そういう変数にマッチする正規表現を書きたいのですが、
漢字だと、"亜-龠"でいいそうですが、あとは平仮名、カタカナなども入れて
[亜-龠あ-んア-ンアーンa-zA-Z][亜-龠あ-んア-ンアーンa-zA-Z0-9]*
ってやったのですが、これで試したらマッチしない場合が有るんですが、何かおかしいですか?
- 324 :デフォルトの名無しさん:2015/06/01(月) 02:07:20.11 ID:29A8lhcJ.net
- マッチしなかった場合の変数名を見て
自分で理由を考えることはしないの?
- 325 :デフォルトの名無しさん:2015/06/01(月) 02:14:19.12 ID:CikCK20O.net
- 終了処理
っていう文字列にマッチしなかった
んだが理由が分からん。
- 326 :デフォルトの名無しさん:2015/06/01(月) 08:41:35.27 ID:CikCK20O.net
- その後調べたんですが、全部の漢字にマッチさせるには、
[一-龠々]
でいいんでしょうか?
でもこれに変えたら今度はregexの処理中に例外が出ました。VS2013C++です。
もう訳分からない。だれか正規表現の専門家の人、解決策を教えて下さい。
よろしく。
- 327 :デフォルトの名無しさん:2015/06/01(月) 18:43:06.30 ID:MBU7fCss.net
- DFA型エンジンが後方参照をサポートしない理由はDFAが記憶領域を持たないから
であってる?
- 328 :デフォルトの名無しさん:2015/06/02(火) 21:52:01.94 ID:zQHp25BH.net
- >>326
[一-鷯 で一度やってみて。
「々」も含めるなら [一-黶X] で。
(「鶴」じゃないよ、「黶vだよ。
違いわかんなかったら手入力せずに
コピーして使ってみて)
- 329 :デフォルトの名無しさん:2015/06/05(金) 12:52:40.71 ID:PPi1ASxW.net
- C++のソースコード内からint変数fooに代入している箇所を検索するにはどういった表現になりますか?
コメントとなっている箇所はマッチして欲しくないです。つまり
//foo=0;
や
/*
foo=0;
*/
や
int bar;
bar/*foo*/=0;
はマッチして欲しくありません
- 330 :デフォルトの名無しさん:2015/06/05(金) 13:16:48.78 ID:pL4Ru2oZ.net
- ( ^ω^)
- 331 :デフォルトの名無しさん:2015/06/05(金) 13:18:52.35 ID:pL4Ru2oZ.net
- ('A`)
- 332 :デフォルトの名無しさん:2015/06/05(金) 13:25:45.78 ID:VPPIvYe4.net
- ∧_∧
⊂≡⊂=(・ω・ ) 上弱P食らわしてやんよ
⊂=⊂≡ ⊂)
ババババ( \
∪ ̄\_)
- 333 :デフォルトの名無しさん:2015/06/05(金) 13:33:10.85 ID:uVxucrbL.net
- (o'A`)
- 334 :デフォルトの名無しさん:2015/06/05(金) 13:33:33.44 ID:Fs4MPP1/.net
- >>329
正規表現ではそのような複雑な表現はできませんよ。
- 335 :デフォルトの名無しさん:2015/06/05(金) 14:14:06.25 ID:ual2rfpV.net
- コメント全部削除 → 検索
の流れでなら簡単に作れるからそうすればいいんじゃないかな。
作り方は
1、正規表現を覚える
2、作る
以上。
- 336 :デフォルトの名無しさん:2015/06/05(金) 16:51:22.98 ID:KqxzyY/b.net
- >>327
に誰か答えてほしい
- 337 :デフォルトの名無しさん:2015/06/05(金) 21:58:09.00 ID:b/z9D2Ur.net
- 森鴎外叱る
- 338 :デフォルトの名無しさん:2015/06/05(金) 23:09:54.49 ID:PPi1ASxW.net
- >>335
高々ある変数に代入している箇所を検索するのに
スクリプトなんかを書かなきゃ駄目ですか?
あるプログラムのデバッグをしてる最中に、あらたなるプログラムを作成して
デバッグしてやっと本デバッグプログラムの検索か・・・
- 339 :デフォルトの名無しさん:2015/06/06(土) 01:02:20.09 ID:DXSt7rl7.net
- >>329
かけないことはないだろうけど
それを書けるような猛者はここにはいないよ
一応挑戦してみるが、結構難しいな
- 340 :デフォルトの名無しさん:2015/06/06(土) 01:30:56.22 ID:36T2EiFK.net
- スクリプトなんていらないよ、テキストエディタでも出来る
1、正規表現でコメントを全部消す
2、その結果から変数を検索
簡単簡単
- 341 :デフォルトの名無しさん:2015/06/06(土) 01:48:26.42 ID:DXSt7rl7.net
- それじゃカッコワルイじゃないですか
一発で検索したくないですか?
しかも、検索対象のファイルを変更するのが嫌でしょ
わざわざ検索するためだけに、別ファイルを用意しますか?w
- 342 :デフォルトの名無しさん:2015/06/06(土) 03:15:09.59 ID:1eZuzqWlY
- 定番どころのエディタやIDEだと
コメント除外のgrepはなんらかの形で対応してるから
それでざっくり当たりつけて
あとはメモリブレークでいいんじゃないのかね
- 343 :デフォルトの名無しさん:2015/06/06(土) 12:08:10.67 ID:ncV7zKIY.net
- C++は /* */のコメントのネスト禁止だっけ? /* /* */でコメントは閉じる的な
- 344 :デフォルトの名無しさん:2015/06/06(土) 14:35:23.98 ID:N7nz1eGU.net
- >>340
エディタを使うんならコメントを消す処理なんかいらないよ。
コメント部分は検索させないようにするオプションを持ったエディタがいくつか存在する。
mifes10
http://www.megasoft.co.jp/mifes10/function/img/searchfunc06.png
秀丸
http://hide.maruo.co.jp/software/hidemaru7/image/new4_4.png
- 345 :デフォルトの名無しさん:2015/06/06(土) 14:44:15.71 ID:DXSt7rl7.net
- >>344
ここのタイトルを2回声に出してよんでください。
テキストエディタの機能できるのは当たり前
- 346 :デフォルトの名無しさん:2015/06/06(土) 17:44:06.25 ID:36T2EiFK.net
- >>344
なんだ、そういうのがあったのか。ハイ、終了〜
- 347 :デフォルトの名無しさん:2015/06/06(土) 18:16:43.08 ID:UAwz6Eis.net
- ('A`)
- 348 :デフォルトの名無しさん:2015/06/06(土) 18:31:15.40 ID:er0p5JpR.net
- EmEditorは?
- 349 :デフォルトの名無しさん:2015/06/06(土) 19:11:52.25 ID:DXSt7rl7.net
- 既存のソフトできるなら、お前らは何のためにプログラムを作っているの?
誰も実装できていないソフトしか作っていないの?
- 350 :デフォルトの名無しさん:2015/06/06(土) 19:28:09.88 ID:Pg7CH/dm.net
- 適材適所で使う場合と使わない場合があるもんだよ
なんでもかんでも使わなければならないってのは思考が凝り固まってて
プログラミングするのには向いてないから止めとけ
- 351 :デフォルトの名無しさん:2015/06/06(土) 19:30:28.35 ID:lEehlEWR.net
- (((( ;゚Д゚))))
- 352 :デフォルトの名無しさん:2015/06/06(土) 19:52:34.02 ID:IVsptkgW.net
- >>349
あほか
- 353 :デフォルトの名無しさん:2015/06/06(土) 21:03:11.21 ID:DXSt7rl7.net
- 涙拭いて、できないって素直に言えよhw
- 354 :デフォルトの名無しさん:2015/06/06(土) 21:08:16.94 ID:DXSt7rl7.net
- テキストエディタって銘打ってるんだから、バイナリ編集とかどうでもいい機能つけずに
検索をもっと便利にしてくれ・・・
CC++のコメント中は対象外とか、#ifdef中は対象外とか、文字列定数中は対象外とか
あいまい検索とか・・・
18000円もするテキストエディタとは思えんしょぼ検索しかできん・・・
- 355 :デフォルトの名無しさん:2015/06/06(土) 21:20:08.43 ID:cMy/WvKO.net
- まぁ、そういうテキストエディタが見当たらないってことは
君の考えは世間に支持されてないってことなんだろう
- 356 :デフォルトの名無しさん:2015/06/06(土) 21:25:56.19 ID:IVsptkgW.net
- >>353
おまえ、自分のバカさがわかってないようだな
専門学校卒か?
- 357 :デフォルトの名無しさん:2015/06/06(土) 21:26:59.11 ID:IVsptkgW.net
- >>354
こりゃ馬鹿だわ
笑った笑った
おまえ、マクロで組むことさえできんのか?
- 358 :デフォルトの名無しさん:2015/06/06(土) 21:36:52.68 ID:36T2EiFK.net
- 俺はマグロでこんなの組んだわ
ttp://images.keizai.biz/ishigaki_keizai/headline/1411604917.jpg
- 359 :デフォルトの名無しさん:2015/06/06(土) 21:53:28.61 ID:IVsptkgW.net
- 俺の愛用エディタはxyzzyだからマクロはリスプ
もう、女アヘアヘでカモンプスリと言いまくり
英語いうとCommon Pussy かな?
Σ(゚∀゚ノ)ノキャー
- 360 :デフォルトの名無しさん:2015/06/06(土) 22:17:57.58 ID:lEehlEWR.net
- ('A`)
- 361 :デフォルトの名無しさん:2015/06/06(土) 22:39:04.28 ID:ui2otBpE.net
- 俺はMery使ってる
- 362 :デフォルトの名無しさん:2015/06/06(土) 23:13:17.88 ID:kQ/b4dm+.net
- 俺はEmEditor
- 363 :デフォルトの名無しさん:2015/06/06(土) 23:21:19.14 ID:KHffJxSC.net
- \(^o^)/
- 364 :デフォルトの名無しさん:2015/06/06(土) 23:23:37.44 ID:cMy/WvKO.net
- >>362
ご愁傷様です
- 365 :デフォルトの名無しさん:2015/06/06(土) 23:37:14.88 ID:UhJI1pbU.net
- 俺はvi
- 366 :デフォルトの名無しさん:2015/06/07(日) 18:05:00.21 ID:BED/WPPF.net
- vs2013最強だな
- 367 :デフォルトの名無しさん:2015/06/09(火) 11:25:31.33 ID:DVsQoV68.net
- あるテキストファイルの中の文字列を置換したいのですが、
その置換前、置換後の文字列の対応表を別の設定ファイル
---設定ファイル.txt---
寿司 くいねー
うに 食べたい
河童巻き 好物
・・・
---------------------
みたいに作成しておいて、
replace 目的ファイル.txt 設定ファイル.txt > 結果ファイル.txt
みたいな感じでやりたいのですが、そういうツールか何かありますか?
できればWindows、なければ linuxでもOKです。
よろしく。
- 368 :デフォルトの名無しさん:2015/06/09(火) 11:30:28.23 ID:uFdJ1boh.net
- >>329
改行キープして先ずはコメントだけ消す。
もしくはプリプロセッサ通すか。
- 369 :デフォルトの名無しさん:2015/06/09(火) 15:07:38.63 ID:9FRXqzT5.net
- >>367
awk
- 370 :デフォルトの名無しさん:2015/06/09(火) 16:15:21.85 ID:DVsQoV68.net
- >>369
出来れば、もすこし詳しくお願いします。
- 371 :デフォルトの名無しさん:2015/06/09(火) 16:23:53.22 ID:9FRXqzT5.net
- Aho
Waka
Kasu
- 372 :デフォルトの名無しさん:2015/06/09(火) 16:48:22.66 ID:beQM3dhk.net
- www
- 373 :デフォルトの名無しさん:2015/06/09(火) 21:08:22.70 ID:uFdJ1boh.net
- 若?
- 374 :デフォルトの名無しさん:2015/06/09(火) 21:13:30.98 ID:J0bC0FT3.net
- waka
- 375 :デフォルトの名無しさん:2015/06/10(水) 16:22:42.94 ID:fWBwznRJ.net
- VS2013C++の人か、回答レス付いてるのにスルーしてるしなんなのこいつ
- 376 :デフォルトの名無しさん:2015/07/05(日) 13:37:02.04 ID:sKAHM/R7.net
- 他のスレでも聞いたのですが余り見て貰ってないような気がするので、ここでも聞かせてください。
以前見た正規表現のパズルサイトを探しています
そのサイトは英語のサイトで、デザインはこんな感じです。
---------------------------------------
以下に当てはまる正規表現は何か(<-英語で書かれています)
___________<-ここに書き込む 0<-ポイント
(当てはまる) (当てはまらない)
AAA FCD
ABC FGH
ACD FGK
---------------------------------------
短ければ短いほどポイントが加算されていくと言った、
こんな感じだったと思います。
よろしくお願いします
- 377 :デフォルトの名無しさん:2015/07/05(日) 13:53:34.40 ID:tVdhCBhpS
- regex game - Google 検索
https://www.google.com/search?q=regex+game&ie=utf-8&oe=utf-8
https://regex.alf.nu/
一件目…
- 378 :デフォルトの名無しさん:2015/07/05(日) 15:47:00.25 ID:XIvEwRaJ.net
- >>367
awk なら、getline で、辞書を1行ずつ読んで、
置換前・置換後の文字列を取得する
gsub で、すべてを置換していく
でも文字列処理なら、Rubyがベスト。
他には、Pythonとか
ただこの処理は、置換する順番によって、
結果が変わる
例えば、「あいう」→「かきく」の置換後、
「かき」が置換前文字列に該当し、置換されるかも
- 379 :デフォルトの名無しさん:2015/07/05(日) 21:27:23.22 ID:8iLtGCDs.net
- >>376
これ?
http://regex.alf.nu/
あと、複数箇所に同じ質問を投稿するのは「マルチポスト」といって、嫌う人も多いのでやめたほうがよい
- 380 :デフォルトの名無しさん:2015/07/05(日) 21:43:42.37 ID:70VDGlmK.net
- マルチポスト嫌う奴って何に怒っているのか不思議だよなあ。同じ質問を十箇所でする方が回答得られる確率が上がるだろ。
それの何が問題なのか、分からん。
- 381 :デフォルトの名無しさん:2015/07/05(日) 21:56:30.58 ID:YfZOtl+L.net
- 分からんのは童貞だからだ。割とマジで
非童貞非処女だとすれば相当ヤバい
- 382 :デフォルトの名無しさん:2015/07/05(日) 22:01:39.03 ID:70VDGlmK.net
- >>381
世の中情報で溢れているのに
マルチポスト嫌ったところで
屁のツッパリにもならない。
- 383 :デフォルトの名無しさん:2015/07/05(日) 23:50:33.88 ID:7d6Itz6/.net
- あああのサイトか、見たことある
でもあんまり正規表現の学習にはならないような気がする
正規表現を覚えたいなら作って試してを繰り返さないとね
- 384 :デフォルトの名無しさん:2015/07/06(月) 01:41:38.43 ID:lhd6PF02.net
- 文句は2ちゃんをクロスポストに対応させてから言え
- 385 :デフォルトの名無しさん:2015/07/06(月) 03:32:50.53 ID:gmiPbzXR.net
- http://peace.2ch.net/test/read.cgi/tech/1415149975/385
みたいに、
質問する者が一番最初に書いたスレのレス番付きURLを書けば、回答者は一番最初に書かれたスレへ移動して解答できる訳だが
まぁ今回のクロスを見る限り、そういうのは起こりえないな
クロスポストが嫌われる理由は、回答者が同じような事を各々のスレで行う二度手間と質問に対する解答が分散する事での情報の共有が起こらない事
過疎ってるスレによっては、質問されてからクロスされて別スレで解答が付いているにもかかわらず同じ解答が何ヶ月も後になって付くとかね
- 386 :デフォルトの名無しさん:2015/07/06(月) 08:26:10.91 ID:LAMrWff0.net
- 質問はいいだろう
答えをコピーして自分の手柄にする奴のほうが絶対的に多い
- 387 :デフォルトの名無しさん:2015/07/06(月) 09:20:56.75 ID:PmLO0F5+.net
- クロスポストって嫌われてたのか
- 388 :デフォルトの名無しさん:2015/07/06(月) 09:28:03.86 ID:L6unJ2A5.net
- ツイッターの拡散とかいう文化のせいでそういうの気にしないやつ増えたかもな
自分の行動の影響ってのを考えようとしない子供が多い
- 389 :デフォルトの名無しさん:2015/07/06(月) 12:23:11.65 ID:9pvabuWR.net
- お前の行動にどんだけ影響力あんねんw
- 390 :デフォルトの名無しさん:2015/07/06(月) 13:05:36.16 ID:L6unJ2A5.net
- >>389
それが逃げだと言っている
でもだってあいつがはもうやめろ
- 391 :デフォルトの名無しさん:2015/07/06(月) 13:22:29.97 ID:jRBtOUWL.net
- (´・ω・)カワイソス
- 392 :デフォルトの名無しさん:2015/07/06(月) 18:51:03.65 ID:mHy7mQ0q.net
- >>390
なに突然怒ってんのw面白い馬鹿だなお前ww
- 393 :369:2015/07/06(月) 19:56:47.96 ID:EhiPaBaL.net
- >>379
これです!!!!!!!!!
ありがとうございます!!!
本当にありがとうございます!!
- 394 :デフォルトの名無しさん:2015/07/06(月) 20:30:44.10 ID:sYr/dgVc.net
- 技術評論社の「正規表現技術入門」
いま少しずつ読んでるけどなかなかいいね
オライリーの「詳説正規表現」は通勤電車で読むにはでかすぎたから
しかしいっぺんにたくさん読もうとすると頭が拒否反応を起こすので遅々として進まない
- 395 :デフォルトの名無しさん:2015/07/06(月) 22:02:35.59 ID:eLFiYoiP.net
- >>394
遅延学習法じゃないと俺は覚えられないわ。
すげーな。
- 396 :デフォルトの名無しさん:2015/07/10(金) 09:55:54.12 ID:hzu9oSkn.net
- ちょっと気になったんですが
[abc]と(?:a|b|c)って同じ?
- 397 :デフォルトの名無しさん:2015/07/10(金) 15:19:23.56 ID:z/gFWW9M.net
- 処理速度は明らかに違うね。やってること違うんだから
- 398 :デフォルトの名無しさん:2015/07/10(金) 15:29:45.92 ID:/ztBzBD5.net
- (?:a|b|c) ←横たわった赤ちゃんが「てへ」って笑っているように見える。
- 399 :デフォルトの名無しさん:2015/07/10(金) 16:53:22.08 ID:/TIw0VBH.net
- _(:3」∠)_
こういうの意味不明だったけど
90度倒すんだってことを最近学んだ
- 400 :デフォルトの名無しさん:2015/07/11(土) 03:21:59.41 ID:E8Ycm1mp.net
- 同じように見えて動作は異なる
同じ結果になることが多いけどね
後者は分岐で枝分かれするが前者はしない
枝分かれがあると他の枝に到達する前に処理が完了することがあり
それによって結果が異なるケースが出てくる
具体的には・・例を考えるのがめんどくさいので省略
- 401 :デフォルトの名無しさん:2015/07/11(土) 05:26:15.77 ID:+YvowemZ.net
- (:・p
わんわん
- 402 :デフォルトの名無しさん:2015/07/11(土) 06:12:13.81 ID:coKbQ2xf.net
- >>400
速度以外で副作用あるなら例示してくれないと
- 403 :デフォルトの名無しさん:2015/07/13(月) 13:45:40.34 ID:rgM8ybmA.net
- 一部の正規表現エンジンにある デフォルトungreedy やバックトラック無用オプションを使うと出来そうだが、
例出すのめんどくせいな。
- 404 :デフォルトの名無しさん:2015/07/14(火) 21:46:45.01 ID:haTSgOk9.net
- (a|b|c)?
あとはもう分かるね?
- 405 :デフォルトの名無しさん:2015/07/14(火) 23:07:11.17 ID:D0NzobbPS
- 分らんなぁ
- 406 :デフォルトの名無しさん:2015/07/16(木) 08:52:15.33 ID:+eUx92Zt.net
- 分かんない
- 407 :デフォルトの名無しさん:2015/07/26(日) 19:36:44.94 ID:ItgeJjtc.net
- ●Regular Expressionの使用環境
Perl?
●検索か置換か?
検索
●説明
全角文字のあとにスペースをおかずURLが書いてあるものをチェックしたい
●対象データ
あいうえおhttp
あいうえお http
あいうえお http
●希望する結果
○あいうえおhttp
×あいうえお http
×あいうえお http
- 408 :デフォルトの名無しさん:2015/07/27(月) 01:46:46.85 ID:oJMQ9Tqm.net
- 夏だねぇ。
- 409 :デフォルトの名無しさん:2015/07/27(月) 01:59:27.68 ID:lCJIzle6.net
- >>407
/[^\s ]http/i
- 410 :デフォルトの名無しさん:2015/08/15(土) 11:43:29.85 ID:R9fu6Ifz.net
- 質問です。
Objective-Cで
(1)文字列中の[0-9],「*」,「Z」以外の文字を半角スペースに置換えるには、
どう記述すれば良いのでしょうか?
(2)同じ文字列中の別の文字(例えば「"」)も別の文字列(例えば「OK」)に置換えたい場合は、
2回に分けて行わなければいけないのでしょうか?
よろしくお願い致します。
- 411 :デフォルトの名無しさん:2015/08/18(火) 09:52:41.61 ID:zFueqOk6.net
- ●Regular Expressionの使用環境
Mery(2.3.0.5095)というテキストエディタ
●検索か置換か?
検索
●説明
=の右側(後)のみ一致させたい
●対象データ
usb:0.port = "0"
usb:0.parent = "-1"
Button0=FileNewAction
Button1=FileOpenAction
●希望する結果
"0"
"-1"
FileNewAction
FileOpenAction
よろしくお願いします
- 412 :402:2015/08/18(火) 09:54:23.67 ID:zFueqOk6.net
- ●対象データ
usb:0.port_=_"0"
usb:0.parent_=_"-1"
Button0=FileNewAction
Button1=FileOpenAction
●希望する結果
_"0"
_"-1"
FileNewAction
FileOpenAction
半角スペースが消えてしまったので_(アンダースコア)に置き換えて投稿します
- 413 :デフォルトの名無しさん:2015/08/18(火) 10:09:54.52 ID:E/WkoMWm.net
- /[^=]*?=(.*)$/
- 414 :402:2015/08/18(火) 10:20:45.79 ID:zFueqOk6.net
- >>413
ありがとうございます
それだと全部に該当してしまい駄目でした
- 415 :デフォルトの名無しさん:2015/08/18(火) 10:51:10.47 ID:3C1G6Y0R.net
- /(?<=\=).*$/
- 416 :402:2015/08/18(火) 10:55:39.07 ID:zFueqOk6.net
- >>415
ありがとうございます
無事できました
どうもありがとうございました
- 417 :デフォルトの名無しさん:2015/08/19(水) 07:30:33.92 ID:nmY/Lo3r.net
- JavaScriptで変数宣言の行
var a;
var bb;
var ccc = 1;
/* comment */ var abc = 1;
などに対して
この変数名 a, bb, ccc, abc などを取り出したいのですが、
(?:.*)var ([^; ]*)(;| =).*"
で良いでしょうか?
以下の前提で。
varと変数の間には半角空白一個とします。
=の前後には半角空白一個とします。
行末には必ず;があるとします。
/* var */ var var1 = 'var';
みたいなややこしいのが有った場合には、上の表現では対処出来ないように思います。
もっとスマートな記述ありますか?
- 418 :デフォルトの名無しさん:2015/08/19(水) 07:35:38.53 ID:nmY/Lo3r.net
- 補足 一行に複数の宣言がある場合も想定しない。
例
var a,b;
var a;var b;
などは想定しない。
- 419 :デフォルトの名無しさん:2015/08/19(水) 07:56:53.39 ID:2BnPkC6V.net
- コメントを考慮するなら正規表現一発では無理
s = 'var a = 1;';
// var a = 1;
/* var a = 1; */
/* // */ var a = 1;
- 420 :デフォルトの名無しさん:2015/08/19(水) 08:03:06.49 ID:nmY/Lo3r.net
- コメントが有る場合は、
var の前に一個だけあるという前提でお願いします。
- 421 :デフォルトの名無しさん:2015/08/19(水) 08:09:24.25 ID:hnj5IXaX.net
- var a = '//ここは' /* + */ + 'コメントではない';
- 422 :デフォルトの名無しさん:2015/08/19(水) 08:21:58.67 ID:nmY/Lo3r.net
- >>421
演算も無いという前提でお願いします。
var 変数;
var 変数 = 初期値;
/*コメント*/ var 変数;
/*コメント*/ var 変数 = 初期値;
のどれかのパターン限定で。
- 423 :デフォルトの名無しさん:2015/08/19(水) 08:26:11.19 ID:2BnPkC6V.net
- こういうのも無し?
/*
//
var a =1;
*/
- 424 :デフォルトの名無しさん:2015/08/19(水) 08:34:16.58 ID:nmY/Lo3r.net
- >>423
そういうのは無しでお願いします。
- 425 :デフォルトの名無しさん:2015/08/19(水) 08:43:57.59 ID:nmY/Lo3r.net
- 忘れていました。
処理系はc++のstd::regexかboost::regexで。
- 426 :デフォルトの名無しさん:2015/08/19(水) 09:18:39.14 ID:8jY/tdOy.net
- test
- 427 :デフォルトの名無しさん:2015/08/19(水) 09:36:41.17 ID:NotHJ7I4.net
- ●Regular Expressionの使用環境
Python 3.4
●検索か置換か?
検索
●説明
Aから始まってCで終わる(Aから最後のCの中には別のCを含まない)配列が欲しいです
●対象データ
"ABABBCBBBABBBBC"
●希望する結果
"ABABBC"
"ABBC"
"ABBBBC"
よろしくお願いいたします
- 428 :デフォルトの名無しさん:2015/08/19(水) 15:03:59.14 ID:ABRvhkR2.net
- "ABBC" をマッチさせたいならPythonのコードで検索開始位置を指定しなければいけないよ
それとAやCが1文字なのか文字列なのかで書き方がまったく異なるんだけどどっちかな
- 429 :デフォルトの名無しさん:2015/08/19(水) 16:05:10.36 ID:1N+DcVii4
- regexというモジュールを使うと楽だよ
>>> import regex as re
>>> re.findall(r'A[^C]*C', "ABABBCBBBABBBBC", overlapped=True)
['ABABBC', 'ABBC', 'ABBBBC']
- 430 :デフォルトの名無しさん:2015/08/19(水) 21:54:24.07 ID:NotHJ7I4.net
- 文字列です
- 431 :デフォルトの名無しさん:2015/08/20(木) 02:06:15.79 ID:uDC2QM+h.net
- A(?:(?!C).)*C
A、Cは文字列。検索するときのオプションは re.DOTALL
普通に検索すると "ABBC" がマッチしないのでマッチするようにコーディングを工夫しないといけない
前回マッチした文字列の先頭の位置 + 1 = 次回マッチを開始する位置
これを使って1マッチごとに検索開始位置を指定し直し、これを繰り返す
マッチするものが見つからなければ検索の繰り返しを終了するようにコーディングする
使うのは re.match でなく re.search。マッチした文字列の先頭は match.start()
- 432 :デフォルトの名無しさん:2015/08/20(木) 02:13:38.15 ID:b7jGp5V2.net
- ありがとうございます!
- 433 :デフォルトの名無しさん:2015/08/20(木) 11:38:48.95 ID:vSASgIXr.net
- 正規表現って、狭義では
s/unko/chinko/m
でいう hoge の部分のことですよね
sの部分と mの部分は それぞれなんと呼べばいいのですか?
- 434 :デフォルトの名無しさん:2015/08/20(木) 11:47:22.72 ID:pV6cw7bo.net
- Where is hoge?
- 435 :デフォルトの名無しさん:2015/08/20(木) 15:16:54.70 ID:Ku+dT2bO.net
- Oh i dont found hage.
- 436 :デフォルトの名無しさん:2015/08/20(木) 15:38:44.92 ID:lQ5EcHLA.net
- >>433
お前が正規表現だったのか
- 437 :デフォルトの名無しさん:2015/08/20(木) 16:31:01.44 ID:/ofAbfuE.net
- Palrez vous hoge?
- 438 :デフォルトの名無しさん:2015/08/21(金) 00:40:07.59 ID:sdFrMS9Z.net
- anko が足りないぞ
- 439 :デフォルトの名無しさん:2015/08/21(金) 00:57:17.96 ID:l5C6fxn/.net
- sayasayaもな
- 440 :デフォルトの名無しさん:2015/08/21(金) 01:02:18.54 ID:RiErs0YC.net
- >>433
先頭のsの部分はoperationと呼ばれる。
末尾のmの部分はoptionだったかな。
perlでの話だけど。
- 441 :デフォルトの名無しさん:2015/08/21(金) 04:29:04.11 ID:Y3ixC287.net
- test
- 442 :デフォルトの名無しさん:2015/08/21(金) 04:41:36.20 ID:dLGlSdT1.net
- あーなるほど
- 443 :デフォルトの名無しさん:2015/08/21(金) 08:27:46.60 ID:C9kOInGB.net
- >>440
mなんて使えたっけ?pしか覚えてねえ。
- 444 :デフォルトの名無しさん:2015/08/21(金) 08:29:47.18 ID:C9kOInGB.net
- あ、sedの話だった。perlは分からん。
- 445 :デフォルトの名無しさん:2015/08/21(金) 08:35:06.38 ID:JFe3Ml2I.net
- >>443
multi lineのm
文字列内の改行を行末や行頭として扱うオプション。
java scriptでも使えた気がするよん。
- 446 :デフォルトの名無しさん:2015/08/21(金) 12:24:19.85 ID:fG7y6P2l.net
- Java Scriptでは、オプションとは言わずフラグと言ってる
gmiとy(Firefox 3で追加)の4つがある
- 447 :デフォルトの名無しさん:2015/08/22(土) 16:26:06.32 ID:WBRo7qVL.net
- >>440
ありがとう
助かった
- 448 :デフォルトの名無しさん:2015/09/01(火) 08:45:31.63 ID:lL9KDRTX.net
- 文字列の一行目にだけある正規表現を適用したい場合
どういう風に書けばいいでしょうか?
- 449 :デフォルトの名無しさん:2015/09/01(火) 08:50:52.82 ID:dXN4Hx3i.net
- \A を使いなさい
- 450 :デフォルトの名無しさん:2015/09/03(木) 09:59:21.94 ID:7arkYUNT.net
- 鬼車のサイトが見れなくなってる
- 451 :デフォルトの名無しさん:2015/09/04(金) 14:27:00.34 ID:hIocF1du.net
- 複数の単語が半角スペース、全角スペース、タブなど(一個あるいは複数個)で連結されているとして、それを半角スペース一個だけで連結したいんです。
- 452 :デフォルトの名無しさん:2015/09/04(金) 14:38:16.99 ID:H2J+jlBE.net
- [ \t]+
- 453 :デフォルトの名無しさん:2015/09/04(金) 15:06:08.02 ID:OjSr213v.net
- s/\s+/\s/
- 454 :デフォルトの名無しさん:2015/09/05(土) 00:02:44.61 ID:Xqs3nieT.net
- >>453
処理系何?
- 455 :デフォルトの名無しさん:2015/09/05(土) 00:49:32.43 ID:R93LeTtd.net
- 質問すらまともに出来ない奴が正規表現なんて無理
- 456 :デフォルトの名無しさん:2015/09/10(木) 21:59:01.69 ID:qbjnfhqx.net
- 今まで任意の1文字は"."と覚えていたのですが
シングルラインでは"(?s)"
マルチラインでは"."
があると初めて知りました
シングルラインの記述はマルチラインと全く違いますが、シングルラインは1から覚えないと駄目なものなのでしょうか?
- 457 :デフォルトの名無しさん:2015/09/10(木) 22:29:36.80 ID:K9e6sJjq.net
- 単にメタ文字の意味がちょっと変わるというだけ
マルチラインだからといって一行ごとに区切って処理されてるわけじゃなく、単にメタ文字の意味が変わるだけ
- 458 :デフォルトの名無しさん:2015/09/10(木) 22:39:25.93 ID:CgmggGA3.net
- これすごいと思った
var list = (function() {/*
ここに
任意の
文字列
*/}).toString().match(/\/\*([^]*)\*\//)[1];
- 459 :デフォルトの名無しさん:2015/09/10(木) 23:22:04.39 ID:lE8lGtnC.net
- >>457
レスありがとうございます
意味が違う(マルチラインの意味を流用できない)ってことはやはりその意味を1から覚え直さないと駄目ってことなんですよね?
マルチラインだけの意味を理解しただけで喜んでいたことが恥ずかしい
- 460 :デフォルトの名無しさん:2015/09/11(金) 00:23:03.67 ID:XlHAG1ZO.net
- >>458
良い事教えてもらった
- 461 :デフォルトの名無しさん:2015/09/11(金) 00:23:58.68 ID:suCkJgnJ.net
- 別にマルチラインだけ覚えててシングルラインの動作を知らなくても困ることはないよ
余裕があったらシングルラインの動作も調べればいいし、必要無ければそのままでもいい
というかググればどういう違いがあるのか一目瞭然だから気になるならググろう
別に知らなくても困らないからマルチライン一本に絞ってやっていってもいいと思うけどね
- 462 :デフォルトの名無しさん:2015/09/11(金) 01:29:00.23 ID:Dh6jgTtm.net
- >>461
ググって違いがあったことだけで具体的な違いはまだでした
正規表現はとても興味深いのでシングルラインは具体的にどう違うのか調べてみたいと思います
ありがとうございました
- 463 :デフォルトの名無しさん:2015/09/11(金) 07:00:21.81 ID:GHVwR1ig.net
- >>458
どうなるん?
- 464 :デフォルトの名無しさん:2015/09/11(金) 17:05:24.41 ID:z9laoE0x.net
- 質問です(Perl)。
「yyyy年mm月dd日」形式の文字列を検索して、
yyyyとmmとddを別々の文字列として受け取りたい場合は、
どう書けば良いのでしょうか?
- 465 :デフォルトの名無しさん:2015/09/11(金) 17:53:37.67 ID:jxONgP+h.net
- >>463
間に書かれた(複数行の)文字列が変数listに代入される
が、
[^]*
の意味が判らない???
否定文字クラスが空?
WSHやIEだと(jscript)ダメ
鬼車やrubyでもダメ
[\s\S]*って書いたほうが汎用性があるんじゃないか?
- 466 :デフォルトの名無しさん:2015/09/11(金) 18:27:00.52 ID:GHVwR1ig.net
- >>465
よくわからん。
間の文字列はコメントじゃあない?
- 467 :デフォルトの名無しさん:2015/09/11(金) 18:38:32.93 ID:9VDeBDLt.net
- >>465
[^*]*の転記ミス?
- 468 :デフォルトの名無しさん:2015/09/11(金) 19:53:46.65 ID:jxONgP+h.net
- >>466
一つWSH実行で例をあげてみる
var func = (function() {/* xxx */});
WSCript.Echo(func);
これは無名関数(関数リテラル)で定義された関数funcを表示してみたわけだが
function() {/* xxx */}
と表示される
これで判るんじゃない?
- 469 :デフォルトの名無しさん:2015/09/11(金) 19:57:29.77 ID:jxONgP+h.net
- 書き損じた
var func = function() {/* xxx */};
WScript.Echo(func);
- 470 :デフォルトの名無しさん:2015/09/11(金) 22:05:30.40 ID:GHVwR1ig.net
- >>469
わからん。どう見てもコメントじゃあん。
- 471 :デフォルトの名無しさん:2015/09/11(金) 22:13:39.85 ID:eqePKJqG.net
- じゃあん
- 472 :デフォルトの名無しさん:2015/09/11(金) 22:17:20.35 ID:WBH/LaOP.net
- (・・?jランキング
- 473 :デフォルトの名無しさん:2015/09/11(金) 22:19:25.84 ID:WBH/LaOP.net
- ( ^ω^)
- 474 :デフォルトの名無しさん:2015/09/11(金) 23:17:23.15 ID:jxONgP+h.net
- >>470
var func;
func = function() {/* xxx */};
WScript.Echo(func); //---(1)
func(); //---(A)
func = func.toString();
WScript.Echo(func); //---(2)
func(); //---(B)
(1)と(2)で表示されるものは同じだが、(A)は正常で(B)ではエラーとなる
変数funcに何が入っているのか考えれば判るだろう
- 475 :デフォルトの名無しさん:2015/09/12(土) 01:41:58.72 ID:SpNYzqMd.net
- >>464
/(¥d+)年(¥d+)月(¥d+)日/
でどうかな?
$1、$2、$3で
- 476 :デフォルトの名無しさん:2015/09/12(土) 06:10:17.28 ID:1mS4NSAq.net
- 全然わからん。
- 477 :デフォルトの名無しさん:2015/09/12(土) 10:19:21.58 ID:GXmnKqHL.net
- 分からんものを使ってもデメリットしかない
- 478 :デフォルトの名無しさん:2015/09/12(土) 11:35:33.84 ID:EtegBYPR.net
- >>476
カッコで格納してドルで呼び出し
- 479 :デフォルトの名無しさん:2015/09/12(土) 14:49:20.82 ID:1mS4NSAq.net
- 448は結局どいう時にに役立つんだ?
- 480 :デフォルトの名無しさん:2015/09/12(土) 22:39:31.81 ID:P7CwcYHV.net
- >>479
データを手間なく埋め込みたいとき
普通のテキスト代入だと、
var list = 'ここに\n'
+ '任意の\n'
+ '文字列\n';
とか
var list = [
'ここに',
'任意の',
'文字列',
].join('\n');
って書かなきゃいけないじゃん
さらに文字列中に引用符"'や\を入れるときは、'"'+"'"と分けるか、'\''とかエスケープしなきゃならないし
まあhtmlなら<script>タグに入れる手もある
<script id="data" type="text/plain">
ここに
任意の
文字列
</script>
<script>
var list = document.getElementById('data').text;
alert(list);
</script>
- 481 :448:2015/09/16(水) 04:04:28.82 ID:dSgInI6n.net
- 自分が調べたきっかけはこういうサイトにデータを入力するのをスクリプトでやるためです。
※広告注意※
ttp://hibin0.web.fc2.com/grbr_atk_calc/atk_calc.html
入力するデータはスクリプトで取得してますが、
ブックマークに登録した JavaScript で簡易的にやってるので
データのセットまではできないんですね。
それで、ぽとぺたの手間が少なくて済むこの方法が便利かなと。
どのみちデータとスクリプトをセットで出力して丸ごとコマンド実行するつもりですが
データの部分に手を付けなくて済むので楽かなと。
その場合、特に、文字列記号の入れ子を避けられるのがメリットです。
ついでに書くと、 >>458 の書き方だと空行が入るので
データとして使う場合は trim() か空行チェックが必要です。
- 482 :デフォルトの名無しさん:2015/09/16(水) 09:34:22.52 ID:d+PGYxxz.net
- ^と¥Aの違いを教えてください。
どちらも先頭にマッチするんですよね?
違いが分かりません。
- 483 :デフォルトの名無しさん:2015/09/16(水) 10:57:00.59 ID:3CkagkiO.net
- >>3
- 484 :デフォルトの名無しさん:2015/09/16(水) 11:19:06.35 ID:d+PGYxxz.net
- >>483
ググッテもさっぱり分かりませんでした。
- 485 :デフォルトの名無しさん:2015/09/16(水) 13:45:02.23 ID:d+PGYxxz.net
- 0-9の数字では無い
と言う条件は
[^0123456789]
でいいですか?
[^0-9]
と書けませんか?
- 486 :デフォルトの名無しさん:2015/09/16(水) 14:15:51.79 ID:3CkagkiO.net
- >>484
>>3の一番上のリンク先で \A で検索
>>485
\D または [^0-9]
注意すべきなのはこれらは1文字にマッチするということ
数字でない文字が1文字存在する必要がある
- 487 :デフォルトの名無しさん:2015/09/17(木) 14:39:05.73 ID:AOGvYO3E.net
- 実用的なパターンが載っているサイトってありますか?
- 488 :デフォルトの名無しさん:2015/09/17(木) 16:35:52.59 ID:6tXr0RuA.net
- めんどくさいタイプだな、めんどくさいんで適当にググるか本でも買って読んでくれ、じゃあの
- 489 :デフォルトの名無しさん:2015/09/17(木) 16:58:01.05 ID:gMKo9Xtr.net
- >>487
フクロウ本でも買えば?
- 490 :デフォルトの名無しさん:2015/09/17(木) 21:41:49.03 ID:9KwBG3P+p
- >>481
> >>458 の書き方だと空行が入るので
しまった。
名前欄は 2ch.net の番号で書いたのに
アンカーは 2ch.sc の番号で書いてしまった。
アク禁食らったから 2ch.net に書けない。
- 491 :デフォルトの名無しさん:2015/09/18(金) 22:33:32.80 ID:ThAKGp2R.net
- 正規表現ってどうして言語ごとに違いが有るの?
厳密な規格みたいなのは無いん?
- 492 :デフォルトの名無しさん:2015/09/19(土) 00:42:49.70 ID:4VjvFtyx.net
- その土地ならではのバックスラッシュ
- 493 :デフォルトの名無しさん:2015/09/19(土) 01:16:12.96 ID:jVOZa/zV.net
- regex-testdrive.com/ja/
"aaa/bbb/ccc"から"aaa/"をマッチさせるつもりで".+?/"と書いたんですが
"aaa/bbb/"がマッチします。何故ですか?
- 494 :デフォルトの名無しさん:2015/09/19(土) 06:55:30.87 ID:V+MALMQT.net
- "bbb/"というグループも".+?/"にマッチするのではなかろうか?
- 495 :デフォルトの名無しさん:2015/09/19(土) 10:53:10.43 ID:jFHyX+Eq.net
- もう来ないで欲しい
- 496 :デフォルトの名無しさん:2015/09/19(土) 14:03:35.01 ID:qCXEI70o.net
- ^.+?/
だと"aaa/"がマッチするよ
- 497 :デフォルトの名無しさん:2015/09/19(土) 14:31:54.26 ID:qCXEI70o.net
- >>493
結局、勘違いじゃないですかね?
/gフラグ付きで、"aaa/"と"bbb/"の両方にマッチしてるんでない?
- 498 :デフォルトの名無しさん:2015/09/19(土) 14:40:22.56 ID:ISETQD0O.net
- 正規表現覚えるなら言語は何がお勧め?
c#でやれば他の言語でも応用出来ますか?
- 499 :デフォルトの名無しさん:2015/09/19(土) 14:44:12.71 ID:qCXEI70o.net
- >>498
色々あるけど自分がよく使う環境が一番いいよ
実装が多いのを使ってみたかったら、Perlとか鬼車とかでいいんじゃない?
- 500 :デフォルトの名無しさん:2015/09/19(土) 15:22:53.14 ID:jVOZa/zV.net
- >>494 >>496-497
ああ、最後まで反復されてるってことですか
無欲の解釈に自信がなかったので気付きませんでした
ありがとうございました
- 501 :デフォルトの名無しさん:2015/09/19(土) 15:30:23.88 ID:jFHyX+Eq.net
- バカすぎ
- 502 :デフォルトの名無しさん:2015/10/06(火) 15:24:45.73 ID:18FNk5ew.net
- sed -i -e “s|#LoadModule php5_module libexec\/apache2\/libphp5.so|LoadModule php5_module libexec\/apache2\/libphp5.so|“ /etc/apache2/httpd.conf
どこで質問すればいいのか分からなかったのでここでします
上の文章、どう変えたら動きますか?
ちなみにmacです
- 503 :デフォルトの名無しさん:2015/10/06(火) 19:18:07.89 ID:7VCMeLNK.net
- 引用符が全角なのはまずいし、sed で -i オプション使うなら、-i.bak ってした方がいい。んで
sed -ne "/LoadModule php5_module/p"
でマッチするかどうかから始めたらどだろか。
やりたいことはコメントマーク外すだけみたいだから、エディタで編集した方が早そうだけど。
- 504 :デフォルトの名無しさん:2015/10/11(日) 22:47:47.44 ID:KbfkRHMw.net
- 出来るだけ精度良く住所にマッチする正規表現を教えて下さい。ネットの例はどれも性能不足でした
- 505 :デフォルトの名無しさん:2015/10/13(火) 09:00:48.01 ID:4ZQyScAP.net
- 全市町村入力してマッチさせたらいいよ
- 506 :デフォルトの名無しさん:2015/10/13(火) 13:58:08.73 ID:P4Y/UxqF.net
- >>505
物凄く長いパターンになるんじゃないか?
何文字くらいか見当もつかない
- 507 :デフォルトの名無しさん:2015/10/13(火) 14:17:22.83 ID:GR3E4svI.net
- (((( ;゚Д゚))))
- 508 :デフォルトの名無しさん:2015/10/13(火) 19:13:40.45 ID:P4Y/UxqF.net
- [a-z]のtだけは除外したい場合
[a-su-z]で出来ると思うのですが、
[^ta-z]みたいな書き方は出来ませんか?
- 509 :デフォルトの名無しさん:2015/10/13(火) 19:21:04.50 ID:uqM+CGI7.net
- >>508
(?!t)[a-z]
- 510 :デフォルトの名無しさん:2015/10/13(火) 19:44:38.71 ID:P4Y/UxqF.net
- >>509
ありがとうございました。
- 511 :デフォルトの名無しさん:2015/10/17(土) 12:39:42.52 ID:lZc14wWH.net
- "単語A", "単語B", "単語C"
のどれも含まないパターンって
どう書くのでしょうか?
- 512 :デフォルトの名無しさん:2015/10/17(土) 13:17:34.78 ID:vyPdS64J.net
- 横d
- 513 :デフォルトの名無しさん:2015/10/17(土) 14:40:06.33 ID:8crV4oii.net
- >>511
どれかが含まれるパターンの否定
- 514 :デフォルトの名無しさん:2015/10/17(土) 14:46:12.98 ID:f+gWclGN.net
- ド・モルガンの法則ってやつだね
- 515 :デフォルトの名無しさん:2015/10/17(土) 14:56:57.56 ID:5seGsXGR.net
- 素直に教えてやれよ
^(?!.*単語A)(?!.*単語B)(?!.*単語C)
- 516 :デフォルトの名無しさん:2015/10/17(土) 15:15:01.19 ID:K9XF/GDc.net
- thx
- 517 :デフォルトの名無しさん:2015/10/17(土) 15:18:00.34 ID:K9XF/GDc.net
- s
- 518 :デフォルトの名無しさん:2015/10/17(土) 16:34:38.08 ID:bgoAiOcg.net
- >>511は>>2のテンプレ使うべき
正規表現の否定の使えるプラグラミング言語なのか
単なるテキストエディタなのかでも
回答は違ってくるわけで。。。
- 519 :デフォルトの名無しさん:2015/10/17(土) 17:24:26.45 ID:5seGsXGR.net
- >>518
まあそうだが、何もそんなに杓子定規に対応しなくてもいいと思う
特別な環境なら自分から質問時に注釈をつけてるはずで
何もなければ一般的な回答でいい
否定先読みは一般的と言える(戻り読みは特殊)し、もしダメだったらまた何か言ってくるだろ
- 520 :デフォルトの名無しさん:2015/10/17(土) 19:43:19.06 ID:lZc14wWH.net
- >>515
上手く行きました。
ありがとうございました。
- 521 :デフォルトの名無しさん:2015/10/18(日) 18:11:22.29 ID:sPJe7rRi.net
- 合致するもの以外を取得する、
否定オプションを使えば?
grep -v (invert)
- 522 :デフォルトの名無しさん:2015/10/21(水) 06:17:27.55 ID:H3y+KU/u.net
- トンデモ質問者に不満がある奴は来ないほうがいいぞ、ストレス溜め込むだけだ
こんなとこで油売ってる暇があったら仕事しろ
- 523 :デフォルトの名無しさん:2015/10/21(水) 07:51:48.47 ID:zc5Cc/IW.net
- 回答者の一部がトンデモなだけで
質問者がトンデたとは思えない
- 524 :デフォルトの名無しさん:2015/10/22(木) 12:38:36.36 ID:n0r635Bx.net
- ●Regular Expressionの使用環境
EmEditor Free 15.2.2
●検索か置換か?
置換
●説明
n個目の半角スペースから指定文字までを消したい
●対象データ
ABC DES GER AAG AEV文字列AFGABBMNYEUDSAE
●希望する結果
2個目の半角スペースから文字列までを消す場合は
ABC DES AFGABBMNYEUDSAE
- 525 :デフォルトの名無しさん:2015/10/22(木) 14:32:37.10 ID:wNyxqlEs.net
- #とにかく半角空白の数を基準にする(対象の半角空白*以降*からだよ!)
^(([^ ]* ){2}).*文字列(.*) 置換後 $1$3
#字下げは無視して、要素間の連続した空白を基準にする
^( *([^ ]+ +){2}).*文字列(.*) 置換後 $1$3
- 526 :デフォルトの名無しさん:2015/10/22(木) 14:37:33.55 ID:wNyxqlEs.net
- ごめんemエディタの置換後の書式は \1\3 だね。すまぬー
- 527 :デフォルトの名無しさん:2015/10/22(木) 16:59:09.63 ID:n0r635Bx.net
- >>525-526
ありがとうございます。本当に助かりました。
- 528 :デフォルトの名無しさん:2015/11/01(日) 22:47:29.02 ID:tEVs0h0K.net
- 半角スペースは削除するが、
《》内の半角スペースだけは残す
というようなことをやるにはどうすればいいですか?
- 529 :デフォルトの名無しさん:2015/11/02(月) 02:30:11.81 ID:0yaAkPxX.net
- s/[^<>]\{-}\zs \ze[^<>]\{-}\(<[^>]\+>\)\@=//g
うーん我ながらひどいwでもまあ動くぜw入れ子とか勘弁ねw@vim
- 530 :デフォルトの名無しさん:2015/11/03(火) 05:06:05.67 ID:Gf5Di//A.net
- 検索
\G[^ ]*+(?:《[^《》]*+》[^ ]*+)*+\K[ ]++
置換
なし
- 531 :デフォルトの名無しさん:2015/11/04(水) 00:42:18.00 ID:2GmlXuzB.net
- あ、間違えた。これじゃ誤爆する。まぁいないみたいだからいっか
- 532 :デフォルトの名無しさん:2015/11/15(日) 03:36:57.52 ID:2QREH4SF.net
- Pythonで、
text=u"Dog,cat,mouse,bird.Human."
を文字ごとに分割したいんですが、
import re
pattern = r" |,|\."
words = re.split(pattern, text)
では[u'Dog', u'cat', u'mouse', u'bird.Human.']となってしまいます
また、pattern=pattern = r"\s|,|\."だと分割すら行われません
\sが効いていないようです
どのように変えればよいですか?
- 533 :デフォルトの名無しさん:2015/11/15(日) 03:39:42.55 ID:2QREH4SF.net
- ごめんなさい
上の方は、bird.Human.をbirdとhumanに分けたいのと、
pattern = r"\s|,|\."で分割されないのはtext=u'My name is ...'です
- 534 :デフォルトの名無しさん:2015/11/15(日) 03:49:47.11 ID:+qgiEGrj.net
- >文字ごとに分割したいんですが
文字ごとにって、どういう意味?
例示して
- 535 :デフォルトの名無しさん:2015/11/15(日) 10:06:11.57 ID:LQyOcx+Q.net
- \ (U+005C バックスラッシュ) が ¥ (U+00A5 円記号) になってしまっているのでは
- 536 :デフォルトの名無しさん:2015/11/15(日) 10:15:49.91 ID:goCF/v9g.net
- \
- 537 :デフォルトの名無しさん:2015/11/15(日) 15:42:32.36 ID:rTjjRyT5.net
- パターンの指定でユニコード指定してないからとかかな
環境がWindowsじゃないので試せんけど
pattern = r" |,|\."
↓
pattern = ur" |,|\."
- 538 :521:2015/11/15(日) 17:30:49.79 ID:FWlzzsCJ.net
- みなさんありがとうございました
どうも>>537さんのurが正しいようでした
>>534
[u'Dog', u'cat', u'mouse', u'bird', u'Human', u'']
のようなことです
- 539 :デフォルトの名無しさん:2015/11/15(日) 18:11:41.60 ID:PV6fOtMt.net
- python2系禁止ですね判ります
- 540 :デフォルトの名無しさん:2015/11/19(木) 11:27:12.55 ID:o7BebgZg.net
- mateで
【社会】わずか800円の支払いめぐり殴る蹴る 高2生徒ら3人逮捕 [11/17]
みたいななんかニュースのタイトルだけ投稿してるをNGしたいんだけどどうすればいいですか?
- 541 :デフォルトの名無しさん:2015/11/19(木) 13:44:47.18 ID:QaQdEv4L.net
- ●Regular Expressionの使用環境
JavaScript
●検索か置換か?
置換
●説明
「\」(バックスラッシュ)をスラッシュ「/」に変えたいのですがうまくいきません。
普通に str.replace(/\\/g, "\/") で良いと思ったのですが、何も変わりません。
念のため、RegExpで patt = /\\/ として patt.test(str) では true になります。
どうすべきでしょうか?
●対象データ
var str = C:\Test\Out\test.txt
●希望する結果
C:/Test/Out/test.txt
- 542 :デフォルトの名無しさん:2015/11/19(木) 14:18:24.13 ID:jYNOeoK3.net
- そもそもstr内のバックスラッシュ自体がエスケープ文字扱いだろ。
- 543 :デフォルトの名無しさん:2015/11/19(木) 15:05:21.02 ID:D79COvYS.net
- str = 'test\\test/test';
window.console.log(str);
window.console.log(str.replace('\\','/'));
window.console.log(str.replace('/','\\'));
これで置換できてるけど
第一引数は正規表現オブジェクトじゃなきゃならん理由があるのけ?
- 544 :デフォルトの名無しさん:2015/11/19(木) 15:10:19.42 ID:1wzVL5X/.net
- >>541
普通にそれでいいはずだけど?("\/"はエスケープしてもしなくてもいい)
<html>
<script>
var s='var str = C:\\Test\\Out\\test.txt';
document.write(s+'<br>'+s.replace(/\\/g,'/'));
</script>
</html>
- 545 :530:2015/11/19(木) 15:36:16.35 ID:QaQdEv4L.net
- >>542-544
確かにstrの方はエスケープ文字扱いになってますね。
ですが、処理対象の文字列は 'C:\\Test\\Out\\test.txt' のように2個の\ではなく
あくまでシングルの\です。
※ 実際 \test なんかは \t でタブ扱いになってしまってる。
あと対象データ 「var str =」 は余計に書いてました。すいません
- 546 :デフォルトの名無しさん:2015/11/19(木) 15:50:50.30 ID:1wzVL5X/.net
- >>545
javascriptの仕様は知ってるんだろ
変数に直接固定文字列を代入する場合は、""の中で\はエスケープして\\と書くが
実際の変数の中では、\一つだけの文字列だよ(表記だけの問題)
別の方法で変数に代入してるのなら、なんの問題もない
(例えば、入力フォームから取り込むとかファイルから読み込む等)
>>544を実行すれば、sには\は1つだけなのがわかるはず。
(s.lengthで文字数調べてみて)
- 547 :デフォルトの名無しさん:2015/11/19(木) 16:33:08.62 ID:D79COvYS.net
- >>545
進展のないレスだな
既に>>541の要件は満たしてるが
何が解決して何が未解決なのか、貰ったレスで何を得たのか何を試したのか
示して貰わんことには話が進まんよ
エスパーしてみるけど
var str =
- 548 :デフォルトの名無しさん:2015/11/19(木) 17:16:57.37 ID:bYoVHZ0x.net
- ヽ( ・∀・)ノ● ウンコー
- 549 :デフォルトの名無しさん:2015/12/07(月) 12:19:41.67 ID:2PUB+AZr.net
- Javascriptですが
/abc/
と
/^.+abc/
ではどちらが速い(良い)ですか?
- 550 :デフォルトの名無しさん:2015/12/07(月) 15:54:00.79 ID:KuRdWB2c.net
- 後者
- 551 :デフォルトの名無しさん:2015/12/07(月) 15:54:35.70 ID:KuRdWB2c.net
- っていうか挙動が違うから比べる意味がないな
- 552 :デフォルトの名無しさん:2015/12/07(月) 16:14:08.95 ID:RTM8BSjV.net
- うん
- 553 :デフォルトの名無しさん:2015/12/07(月) 17:31:48.63 ID:PeVLng9H.net
- wshや鬼車で比較したところでは、/abc/の方が、マッチした場合でもマッチしなかった場合でも早かったよ
- 554 :デフォルトの名無しさん:2015/12/07(月) 17:44:44.45 ID:PeVLng9H.net
- >>549
自分で確めてくれ
この文字列以外だと別の結果が出る可能性もある
WSHでのサンプルコードを貼りたかったけどはねられるんでダウンロードしてくれ
ttp://www1.axfc.net/u/3579243
- 555 :デフォルトの名無しさん:2015/12/07(月) 22:41:00.40 ID:820kEC52.net
- >>553-554
おっしゃる通り/abc/の方が劇的に速くて驚きました
今後も活用させて頂きます
わざわざありがとうございました
- 556 :デフォルトの名無しさん:2015/12/08(火) 02:26:16.51 ID:oGP4gtxs.net
- matchじゃなくてtestにするともっと差が付く
- 557 :デフォルトの名無しさん:2015/12/08(火) 12:50:29.55 ID:bk3CsbSP.net
- ブックマークレットにしてFxやChromeで実行したら雲泥の差が出た
- 558 :デフォルトの名無しさん:2015/12/16(水) 11:07:10.45 ID:ZVfdq9M1.net
- 文字列「a」を「bbb」or「cccc」or「ddd」のいずれかにランダムで変換することは
正規表現で可能でしょうか。
●Regular Expressionの使用環境
鬼雲、またはBoost.Regex
●検索か置換か?
置換
●説明
=の右側(後)のみ一致させたい
●対象データ
a@hoge.com
a@hoge.com
a@hoge.com
a@hoge.com
●希望する結果
bbb@hoge.com
ddd@hoge.com
ccc@hoge.com
ccc@hoge.com
よろしくお願いします。
- 559 :デフォルトの名無しさん:2015/12/16(水) 11:16:22.98 ID:NHyuVX8f.net
- てst
- 560 :デフォルトの名無しさん:2015/12/16(水) 11:29:39.24 ID:HLJItCvE.net
- 正規表現でランダム置換なんてできないだろ?
つーかスパムメールでも送るつもりか?
- 561 :デフォルトの名無しさん:2015/12/16(水) 15:16:46.07 ID:ZVfdq9M1.net
- ありがとうございます、やはり出来ないですか。
私の知らないだけでもしそういったコマンドがあればと思いお聞きしました。
上は例でしたのでスパムといったことは特にないです。どうもありがとうございます。
- 562 :デフォルトの名無しさん:2015/12/16(水) 15:37:26.82 ID:TfMgYFKH.net
- 鬼雲又はBoostってことはプログラムコードの中ってことだよね
だったら、
a@hoge.comをマッチさせて(aa@hoge.comをマッチさせるのかどうかは知らんが)
ランダム文字列を生成したものと合成すりゃいいじゃん
- 563 :デフォルトの名無しさん:2015/12/16(水) 15:43:04.74 ID:TfMgYFKH.net
- 言語は何か知らないけど概念的にはこんな感じ
loop(n) {str+=random(26)+'a';}
result=textdata.replace(/a(?=@hoge\.com)/,str);
- 564 :デフォルトの名無しさん:2015/12/30(水) 22:24:19.02 ID:ugBw4vew.net
- BREで文字列の選択はできますか?
- 565 :デフォルトの名無しさん:2016/01/02(土) 13:36:50.40 ID:iX7NZfvy.net
- back-references ならば、
\(文字列\)
参考
Regular Expressions
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html
man 7 regex
Man page of REGEX
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/regex.7.html
- 566 :デフォルトの名無しさん:2016/01/07(木) 09:25:29.24 ID:/RiEuU07.net
- ●Regular Expressionの使用環境
Perl5互換
●検索か置換か?
検索
●説明
リンゴの前が「い」ではない文字列だけをマッチさせたい
●対象データ
おいしいリンゴ
まずいリンゴ
どくリンゴ
つぶれたリンゴ
ミカン
バナナ
●希望する検索結果
どくリンゴ
つぶれたリンゴ
否定などを使えば実現出来るのでしょうか。
こういったことが可能であれば教えてほしいです。
- 567 :デフォルトの名無しさん:2016/01/07(木) 10:02:33.73 ID:6pWPF2x5s
- (.*[^い])リンゴ
- 568 :デフォルトの名無しさん:2016/01/07(木) 12:21:47.60 ID:Fs99JMqE.net
- .*[^い]リンゴ
.*(?<!い)リンゴ
ポイント
(?<!しい) の代わりに [^しい] などとするのは、考えているのとは違うものになる
look-behind の場合は一文字以上でもいいが、固定長
学習用のキーワード look-behind 戻り読み 後読み
- 569 :デフォルトの名無しさん:2016/01/07(木) 12:22:39.48 ID:Tlv8AN3c.net
- /(?<!い)リンゴ/
- 570 :デフォルトの名無しさん:2016/01/07(木) 12:33:15.19 ID:Tlv8AN3c.net
- >>568の2つには
リンゴ
(で始まる)にマッチするかしないかの違いがある
- 571 :デフォルトの名無しさん:2016/01/07(木) 13:22:41.46 ID:/RiEuU07.net
- >>568
>>569-570
なるほど、そのように記述すればいいのですね。
希望の動作となりました。
頂いた書き方を見ると近いところまでは出来ていたのですが、細かい部分が間違っていました。
お二方、詳しくありがとうございます。
- 572 :デフォルトの名無しさん:2016/01/16(土) 20:12:13.73 ID:VNE9XgKd.net
- ●Regular Expressionの使用環境
Ruby 2.1.0
●検索か置換か?
検索
●説明
SYLKファイルのレコードのセパレータを以外を検索したい
●対象データ
C;X1;Y3;K"foo;foo2";EFUNC("A;B";;123;;FUNC2(456;;"CD;EF;;GH"));F1
※サンプルなので上記文字列は正しいSYLKフォーマットではありません
●希望する結果
C
X1
Y3
K"foo;foo2"
EFUNC("A;B";;123;;FUNC2(456;;"CD;EF;;GH"))
F1
のみにマッチしたい
フィールドのセパレータは";"
ダブルクオーテーションで挟まれている";"はセパレータではない
Eフィールド中の";;"はセパレータではない
よろしくお願いします
- 573 :デフォルトの名無しさん:2016/01/17(日) 10:54:04.10 ID:iD/f7ImV.net
- 紹介程度なので間違っているところが有るかもしれない
またSYLKフォーマットについてはよく分かりません
ので、適当に直して下さい
ポイント 部分式呼び出し(subexpression call)
#!/usr/bin/ruby
RE = Regexp.compile( <<'__EndOfRE__'.strip, Regexp::EXTENDED )
# definition
(?<content> (?: \g<wQuote> | \g<parenthesis> | [^;
- 574 :デフォルトの名無しさん:2016/01/17(日) 10:55:46.44 ID:iD/f7ImV.net
- 紹介程度なので間違っているところが有るかもしれない
またSYLKフォーマットについてはよく分かりません
ので、適当に直して下さい
ポイント 部分式呼び出し(subexpression call)
#!/usr/bin/ruby
RE = Regexp.compile( <<'__EndOfRE__'.strip, Regexp::EXTENDED )
# definition
(?<content> (?: \g<wQuote> | \g<parenthesis> | [^;注意WQ()] )+? ){0}
(?<wQuote> \" [^"]* \" ){0}
(?<parenthesis>
\(
\g<content> (?: ;; \g<content> )*
\)
){0}
# re main
\g<content>(?:;|\Z)
__EndOfRE__
while gets
$_.chomp!
$_.scan( RE ) {|matched| p matched[0];}
end
- 575 :デフォルトの名無しさん:2016/01/17(日) 11:04:16.54 ID:iD/f7ImV.net
- 2ch の bug かな?>>573 は書き込みが途中で、切れました
>>574 注意WQ の所は、ダブルクォート”(半角)です
[circumflex(hat) semicolon double-quote opening-parenthesis closing-parenthesis]
- 576 :560:2016/01/25(月) 00:07:23.44 ID:1Yw/SdQW.net
- >>573-575
ありがとうございます。期待どおりの結果を得られました
しかし
>部分式呼び出し(subexpression call)
Rubyリファレンスマニュアルのその項を読んでみましたが
その式がどのように動くのか理解出来ず・・・orz
もう少し調べてみます
- 577 :デフォルトの名無しさん:2016/01/25(月) 00:18:23.56 ID:PxJn4izo.net
- お
- 578 :デフォルトの名無しさん:2016/01/27(水) 16:44:20.49 ID:7OoaEKpf.net
- 教えてくださいC#で置換です
<script type=
- 579 :デフォルトの名無しさん:2016/01/27(水) 16:48:11.79 ID:7OoaEKpf.net
- <pre><code>教えてくださいC#で置換です
<script type="text/javascript src="/hogehoge" ></script>
に対してキャッシュ対策のためにurlの末尾に?20160125を入れたい
<script type="text/javascript src="/hogehoge?20160125" ></script>
条件1 type属性は前についたり後についたりつかなかったり
条件2 urlがhttp|httpsで始まる場合外部サービスなのでクエリはつけたくない
条件3(できれば)すでに?が含まれている場合は末尾に&20160125をセットする
条件1まではできました
<script(.*?)src="(.*?)"(.*?)></script>
<script${1}src="${2}"${3}></script>
条件2, 3を満たすにはどうしたらよいでしょうか.</code></pre>
- 580 :デフォルトの名無しさん:2016/01/27(水) 16:55:08.37 ID:7OoaEKpf.net
- 教えてくださいC#で置換です
<script type="text/javascript src="/hogehoge" ></script>
に対してキャッシュ対策のためにurlの末尾に?20160125を入れたい
<script type="text/javascript src="/hogehoge?20160125" ></script>
条件1 type属性は前についたり後についたりつかなかったり
条件2 urlがhttp|httpsで始まる場合外部サービスなのでクエリはつけたくない
条件3(できれば)すでに?が含まれている場合は末尾に&20160125をセットする
条件1まではできました
<script(.*?)src="(.*?)"(.*?)></script>
<script${1}src="${2}"${3}></script>
条件2, 3を満たすにはどうしたらよいでしょうか.
- 581 :デフォルトの名無しさん:2016/01/27(水) 17:52:47.55 ID:xlCdIBQv.net
- C#は全く知らんのだけど、(<script.*src="(?!http).*)(\?)?(".*></script>)って感じで
$2が入ってるかどうかで&をつけるか?をつけるか変えれば良いんじゃない?
- 582 :デフォルトの名無しさん:2016/01/30(土) 13:59:02.70 ID:97c75ht0.net
- c:\aaa\bbb\file.txt
.\bbb\file.txt
file.txt
など、windowsのパス(絶対、相対など)から
file.txt
を取り出す表現を教えてください。
- 583 :デフォルトの名無しさん:2016/01/30(土) 17:00:13.79 ID:TTafasRV.net
- 後ろに\がない位置から末尾まで
- 584 :デフォルトの名無しさん:2016/01/31(日) 08:22:35.34 ID:AEa1Mqyg.net
- 正規表現じゃあできないだろ
- 585 :デフォルトの名無しさん:2016/01/31(日) 09:01:11.31 ID:LZLEJP3w.net
- /^(.*\\)?(.*)$/
で$2を取り出すとか?
- 586 :デフォルトの名無しさん:2016/01/31(日) 09:19:22.49 ID:ZGm5BbJ5.net
- っd
- 587 :デフォルトの名無しさん:2016/02/01(月) 01:38:37.18 ID:42LJ55Ye.net
- /[^\\]+$/
でいいよな
- 588 :デフォルトの名無しさん:2016/02/02(火) 13:31:32.45 ID:Wp28ZdyP.net
- ●Regular Expressionの使用環境
C#
●検索か置換か?
置換
●説明
出現する>>数字のみをすべて+1したい
●対象データ
>>1>>2>>1-2>>1-3
●希望する結果
>>2>>3>>2-3>>2-4
- 589 :デフォルトの名無しさん:2016/02/02(火) 14:46:27.61 ID:yOFSQOe0.net
- >>588
そんなの何に使うと?
- 590 :デフォルトの名無しさん:2016/02/02(火) 15:17:40.05 ID:xkCOh91z.net
- それを聞いてどうする
- 591 :デフォルトの名無しさん:2016/02/02(火) 15:31:50.69 ID:chGMw9p3.net
- 問題出すために作った問題って実用性がなくてつまらんってことだな
- 592 :デフォルトの名無しさん:2016/02/02(火) 15:36:08.94 ID:yRO4HgSK.net
- 実用性がなかろうが殺人用途だろうが
このスレが知ったことではない
- 593 :デフォルトの名無しさん:2016/02/02(火) 15:44:26.23 ID:rxAKW9Tr.net
- >>588
http://ideone.com/DkmZzV
- 594 :デフォルトの名無しさん:2016/02/02(火) 17:10:36.37 ID:Wp28ZdyP.net
- >>593
ありがとうございます。
申し訳ないのですがこちらの言葉足らずでした。
データには数字だけでなく他の文字も含まれています。
要は2chのアンカーと全く同一です。
その中からアンカーに関連する数字のみをすべて+1したいのです
●対象データ
>>1乙
>>2
なんたら
>>1-2
かんたら
>>1-3
うんたら
●希望する結果
>>2乙
>>3
なんたら
>>2-3
かんたら
>>2-4
うんたら
- 595 :デフォルトの名無しさん:2016/02/02(火) 17:50:46.40 ID:qIgOE2Mph
- (?<=>>)([\d-]+)
後の処理はご自分でドーゾ。
- 596 :デフォルトの名無しさん:2016/02/02(火) 17:51:34.47 ID:oL+DFss1.net
- (?<=>>)([\d-]+)
後の処理はご自分でドーゾ。
- 597 :デフォルトの名無しさん:2016/02/02(火) 20:27:18.56 ID:Wp28ZdyP.net
- >>596
どうもありがとうございました。何とか出来たようです。
- 598 :デフォルトの名無しさん:2016/02/16(火) 22:58:07.87 ID:5hX1n3eK.net
- NGexでIP表示スレの特定範囲IPをアボーンしたいのですが
これを正規表現にするとどんなかんじでしょうか?
↓
182.248.0.0-182.251.255.255
- 599 :デフォルトの名無しさん:2016/02/16(火) 23:41:05.17 ID:WEL4Qqsyw
- http://www.analyticsmarket.com/freetools/ipregex
^182\.(2(4[8-9]|5[0-1]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))$
- 600 :デフォルトの名無しさん:2016/02/17(水) 00:34:07.03 ID:BOXLOMwS.net
- 2(4[89]|5[01])
- 601 :デフォルトの名無しさん:2016/02/19(金) 21:08:52.87 ID:fiOWql8G.net
- 11以上の数値にマッチする正規表現はどうやって書けば良いでしょうか?
- 602 :デフォルトの名無しさん:2016/02/19(金) 22:12:34.67 ID:Nn93sxwn.net
- >>601
全然スマートじゃないけど
/0*[1-9](?:0\d+|[1-9]\d*)/
とか
/0*(?!10(?:\D|$))[1-9]\d+/
とか
- 603 :デフォルトの名無しさん:2016/02/19(金) 22:59:54.37 ID:fiOWql8G.net
- >>602
ありがとうございました!
凄く助かりました
上は20,30,40,50等がヒットしないようなので
下を使わせて頂きます
本当に困っていたので涙が出るほど嬉しかったです
- 604 :デフォルトの名無しさん:2016/02/19(金) 23:36:44.62 ID:pjLhb+yw.net
- (1[1-9]|[2-9][0-9]|[1-9][0-9][0-9]+)
- 605 :デフォルトの名無しさん:2016/03/01(火) 00:13:29.69 ID:yoDa+UzO.net
- JavaのMatcherクラス
<div id="aaa">
</div>
<div id="bbb">
<div id="ccc">
<div id="ddd">
</div>
</div>
</div>
ネストしてるdivタグの囲った範囲の文字列抽出と、idの中身を取り出したい
んだけど、入れ子になってるもののマッチってどうすればいい?
- 606 :デフォルトの名無しさん:2016/03/01(火) 00:57:17.60 ID:QFDKhVDb.net
- >>605
Java知らんけど再帰をサポートしてない正規表現なら
自分でパースする関数を作ったほうがいい
- 607 :デフォルトの名無しさん:2016/03/07(月) 14:11:54.25 ID:oj83hPpT.net
- # .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '')
=begin
複数行コメント
=end
Rubyで、行頭=begin 〜 行頭=end で囲んだ、複数行コメントの部分を、複数行の最短マッチで削除したいのですが、=end の同じ行内で、
後ろに書いた、改行以外の部分もついでに削除したい。以下の ' ABC'
=begin
複数行コメント
=end ABC
- 608 :デフォルトの名無しさん:2016/03/07(月) 14:26:17.00 ID:oj83hPpT.net
- >>605-606
木構造を持っているものは、正規表現では無理なので、Parserを使う
- 609 :593:2016/03/07(月) 14:43:24.76 ID:oj83hPpT.net
- >>607 自己レス
# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '#')
str.gsub!(/^#.*$/, '')
元々、行頭が # の行も削除するので、
いったん、複数行コメントの部分を、# に置換してから、
行頭が # の行を削除するようにした
=begin
複数行コメント
=end ABC
これが、以下に置換される
# ABC
- 610 :デフォルトの名無しさん:2016/03/07(月) 15:18:29.62 ID:+tQLURZK.net
- gsub(/^=begin.*?^=end.*$/m, '')でいいんじゃないの?
- 611 :593:2016/03/07(月) 18:33:50.83 ID:oj83hPpT.net
- >610
# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end.*$/m, '')
複数行マッチで、$ を使ったら、ファイルの最後まで削除された。
以下で、' ABC' だけではなく、'123' も削除された。
たぶん、$ が機能しないで、無視される
=begin
複数行コメント
=end ABC
123
- 612 :デフォルトの名無しさん:2016/03/07(月) 19:40:41.19 ID:bcG1DORl.net
- [\r\n]=end[^\r\n]+
- 613 :593:2016/03/07(月) 20:46:34.99 ID:oj83hPpT.net
- >612
改行コードが、[\r\n]限定で、それで出来ました。
gsub(/^=begin.*?[\r\n]=end[^\r\n]+/m, '')
=begin
複数行コメント
=end ABC
123
これで、ABCも削除されて、123だけが残ります
- 614 :デフォルトの名無しさん:2016/03/07(月) 22:28:10.83 ID:HxQlSEZO.net
- >>611
自コメで書いてる
- 615 :デフォルトの名無しさん:2016/03/07(月) 22:33:56.04 ID:HxQlSEZO.net
- >>611
自コメで書いてる”end.*?$”はどうだったの
- 616 :デフォルトの名無しさん:2016/03/08(火) 10:02:12.73 ID:N+gwerl0.net
- stra.gsub(/^=begin[^{=end}]*=end[^\r\n]+/m,'')
- 617 :デフォルトの名無しさん:2016/03/08(火) 13:04:09.09 ID:810kd9as.net
- >>610 に ? をつければ、要件を満たすでしょ?
つまり
/^=begin.*?^=end.*?$/m
>>611
> たぶん、$ が機能しないで、無視される
.* だと、123まで greedy に食べて、文の終わりで $ がマッチする
>>607
> 後ろに書いた、改行以外
と書いてはいるが、もし =end ABC の直後の改行まで含めるなら
/^=begin.*?^=end.*?(?:^|\z)/m
- 618 :593:2016/03/09(水) 00:51:28.21 ID:t6r0Jvyr.net
- >>616
難しそう
>>617
# .*? の、? は最短マッチ
gsub(/^=begin.*?^=end.*?$/m, '')
.*?$ で、最短マッチで、直後の行末に一致しました
=begin
複数行コメント
=end ABC
123
これで、123 だけが残ります
- 619 :デフォルトの名無しさん:2016/03/09(水) 16:28:40.83 ID:i4NOJr2P.net
- エスケープを考慮した置換or検索ってどうやるのでしょうか?
foo
- 620 :デフォルトの名無しさん:2016/03/09(水) 16:35:42.75 ID:i4NOJr2P.net
- 途中で書き込んでしまいました><
”は実際には半角のダブルクオーテーションです。
foo”hoge\”fuga\””bar
から
”hoge\”fuga\””
を切り出したいのです。
環境は
http://dlang.org/phobos/std_regex.html
です。
- 621 :デフォルトの名無しさん:2016/03/09(水) 16:42:08.96 ID:QVSpkpW+.net
- >>619
ご機嫌だな
- 622 :デフォルトの名無しさん:2016/03/09(水) 17:14:05.70 ID:pSSorbbr.net
- (?<!\\)".*?(?<!\\)"
でダメかな?
- 623 :デフォルトの名無しさん:2016/03/09(水) 18:05:33.74 ID:lkt9n8as.net
- "(?:[^"\\]|\\.)*"
基本
[^"]*
エスケープを加える
(?: [^"\\] or \\. )*
- 624 :デフォルトの名無しさん:2016/03/09(水) 19:55:26.16 ID:CzXZOLWV.net
- >>623
\"hage\"foo"hoge\"fuga\""bar
- 625 :デフォルトの名無しさん:2016/03/09(水) 20:45:11.70 ID:lkt9n8as.net
- >>624
>>622 の後で書き込んでいる。当然、考慮済み
それは、必要なら改めて加えれば良い類の、余計な例示
- 626 :デフォルトの名無しさん:2016/03/10(木) 02:05:51.88 ID:mX7rq38E.net
- >>625
いや明らかに不親切だろ
こんな質問する奴にそこまで考慮が及ぶとは考え難い
一言あってしかるべきだったと思うけど
まあ例示は変だけどね
こんなのはあるかも知れない
(`"aaa`) == "\"aaa"
まあ事ほどに言語の記述に正規表現を適用するのは難しい
- 627 :デフォルトの名無しさん:2016/03/10(木) 07:41:20.34 ID:zEnJuJZN.net
- >>626
明らかに不親切かなあ?
「明らか」なのか?
ただの >>626 の主観でしかなくないかい?
どちらかというと俺は、解説やキーワードを付けたりして、親切にしているのだが。
エスケープされたダブルクォートが、ダブルクォートの外に出ている等の場合が普通に想定されるなら
何か断りを入れるよりも、正規表現に加えるよ
通常想定されない余計な場合を考えて、余計なものを付け加えて複雑化したものよりも、
シンプルで理解が進むだろうと、俺は思うよ
そしてその方がより親切だと思う。まあ、自分の主観でしか無いが
> (`"aaa`) == "\"aaa"
これには >>622 もマッチに失敗するけど、別段おかしいとは思わない
こういう別のクォートは、そのクォートの方で処理するべき
他にもシングルクォートや、正規表現 /.../ の中でダブルクォートが存在する場合も有るだろうけれど
別のクォートまで一々書かないよね
ああ、もう時間だ
- 628 :デフォルトの名無しさん:2016/03/10(木) 11:41:50.66 ID:qiWLYw+g.net
- foo”hoge\”fuga\””bar から
”hoge\”fuga\”” を取り出したい
他のケースはなにも考慮しなくていい
というなら
".*"
で済んでしまうな
- 629 :デフォルトの名無しさん:2016/03/10(木) 18:35:57.99 ID:mX7rq38E.net
- >>627
最初のレスはいい
次の>>625が問題レスだって言ってる
これにカチンとくる奴はいっぱいいるぞ
それと (`"aaa`) == "\"aaa"は言語の解析に正規表現を使うっていうこと自体の
無理っぽさを言ったまで
パーサーを使うべき問題
- 630 :デフォルトの名無しさん:2016/03/11(金) 12:11:21.08 ID:iOVIDxci.net
- 無言で難癖の類をつけている >>624 や、必要のない想定について
「一言あってしかるべき」などと続けている >>626 の方に
疑問を持つ人の方が一杯いそう
他人の解答に何か言うのではなく、不満なら自分で答えればいい
他人の解答がなにか言葉が足りないと思うなら、そっと付け加えれば良いだけ
- 631 :デフォルトの名無しさん:2016/03/11(金) 16:42:52.81 ID:YbW0J/IA.net
- 解説をつけて親切に教えたという人が>>625を同じ口で言うとは俄かに信じがたい
- 632 :デフォルトの名無しさん:2016/03/12(土) 17:14:20.51 ID:ECchds7o.net
- 悪意の有る人間に同じ様に親切にする奴なんていないだろ
- 633 :デフォルトの名無しさん:2016/03/12(土) 18:28:04.43 ID:6kiXFdsY.net
- はいはいお前が正しいからもういいって
お前ってのはこのレス読んだお前のことな
- 634 :デフォルトの名無しさん:2016/03/12(土) 22:46:54.63 ID:85ImJBBX.net
- 未だに何が問題だったのか認識してないようなので解説をば
・まず完璧なレスは誰にも期待はできないので抜けや間違いがあっても仕方はない
この点を考慮して、最初のレスに不備は全く無い
・次に>>624がいちゃもんだと決め付けて、「そんなことお前よりわかっとるわい、黙っとれ」
みたいなレスが問題点だと言える
もし、解説し忘れて抜けてたんだったら、きちんと解説すればいいし、
熟考の上でわざと書かなかったのなら、こんなレスはつけずに無視してれば良かった
それに、>>624はいちゃもんとは限っていない
>>623だとこういう問題点もあるということを質問者に気づかせる意図だったのかも知れない
その場合リンクを>>620にするかってことだが、何も文章を書かずに例示するだけなら
俺でも>>623にリンクを貼ると思う
まあプライドが高くてすぐに剥がれるようなメッキはちょっと見苦しい
- 635 :デフォルトの名無しさん:2016/03/13(日) 22:55:06.34 ID:5pC+CJpl.net
- >>624は、好意的に見てもせいぜい
「エスケープしたダブルクォートが、もしも外に有ったらどうするんだよ?」
位にしか読めないじゃないか
「何言ってんの?お前」って返されても文句言えないだろ
そうは思うが、>>625では淡々と事実だけ書いたんけどな
ああ、気分わるいなあと思ったが感情を抑えて、事実だけな
>>624の様に無言でレスを付ければ、指摘だけしか無いのだから、
どう解釈されても仕方が無いよな。指摘だけで勝負だろ
誤解を生みやすく、結果的に相手の感情を害したとしても。
もし、相手を傷つける意図がないならば、感情の行き違いを避け、
誤った意図やニュアンスで伝わらない様に、文章を添えるべきだよね
>>624では、バカにされても仕方が無い様な、おかしな指摘を無言でしておいて、
こちらはそれもしていないのだが、語句がキツくて気に入らないとか、
逆ギレもいいところだろ。怒っていますと繰り返している、
あなたの方がお高いプライドの持ち主なんじゃないの?
- 636 :デフォルトの名無しさん:2016/03/13(日) 22:55:30.93 ID:5pC+CJpl.net
- > 熟考の上でわざと書かなかったのなら、こんなレスはつけずに無視してれば良かった
無言のレスに、レスを付けて何が悪いのか?は?
> 質問者に気づかせる意図だったのかも知れない
自己弁護も白々しく、しかも都合が良すぎる
そんな相手の意図まで、相手の都合の良い様に汲み取るべきとか。おかしいだろ
> 俺でも>>623にリンクを貼ると思う
この過疎スレで、なに第三者のふりをしているの?本当に第三者だとして
他人の言い合いなんかにわざわざ首を突っ込んできているんだ。へぇー(棒)
- 637 :デフォルトの名無しさん:2016/03/14(月) 11:28:40.42 ID:+5uiuB8z.net
- こういう言い合いになると最後にレスしたほうが勝ちだと思ってる奴多いけど
実際のところ最後になった奴が一番惨めだよな
どうだ言い返してやったぞ、今度は何言ってくるんだ言えるものなら言ってみろよと
wkwkしながらスレリロードしてるのに、誰からもレス付かないまま立ち消えていくのは
勝利とはほど遠い虚しさで不憫きわまりない
- 638 :デフォルトの名無しさん:2016/03/14(月) 12:26:39.42 ID:OwtYwpEx.net
- いい加減スレチ
言い合いは他所でやれ
- 639 :デフォルトの名無しさん:2016/03/14(月) 16:31:18.59 ID:CkOIJo3B.net
- visual studioの検索置換で正規表現使うと、なんか動きがおかしい時ないですか?
- 640 :デフォルトの名無しさん:2016/03/15(火) 07:11:42.49 ID:bcM3RviG.net
- 自演乙
- 641 :デフォルトの名無しさん:2016/03/19(土) 22:11:37.95 ID:DRR7a7MQ.net
- ●Regular Expressionの使用環境 → 無料のテキストエディタ、または秀丸
●検索か置換か?→ 検索
●説明
@行頭が数字で始まらない、Aを含む行だけ検索したい。
A行頭が数字で始まらない、行末にAが来る行だけ検索したい。
●対象データ
123 fooA
foobarA foobar
548 fooA
foobarA foobarA
●希望する結果
@
foobarA foobar
foobarA foobarA
A
foobarA foobarA
よろしくお願いします。
- 642 :デフォルトの名無しさん:2016/03/19(土) 23:44:13.39 ID:8UZGwfqY.net
- >>641
^[^\d].*A.*$
^[^\d].*A$
- 643 :デフォルトの名無しさん:2016/03/20(日) 00:17:07.16 ID:6E3rfl+p.net
- thx
- 644 :デフォルトの名無しさん:2016/03/20(日) 01:10:35.08 ID:dD/6nOCQ.net
- >>636
悪くはないかもしれないが、どうしても一言言わずにゃおれなかったっていうみえみえの心理状態だな
- 645 :デフォルトの名無しさん:2016/03/20(日) 04:18:17.30 ID:P2wGuxR2.net
- >>642
ありがとうございます。
- 646 :デフォルトの名無しさん:2016/03/20(日) 07:03:52.63 ID:BKY+bqXr.net
- <div>
<p></p>
<p></p>
</div>
<div>
<p></p>
<p></p>
</div>
こういうhtmlを2つの<div>のグループに分離したいのですが、
<div>.*</div>
とすると当然、先頭の<div>と末尾の</div>にマッチしてしまいます。
途中の<div>や</div>にはマッチさせない記述を教えて下さい。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 647 :デフォルトの名無しさん:2016/03/20(日) 08:42:50.38 ID:4Rc5hh5g.net
- >>644
普通レスを返すだろ
>>640 では、気を使って抑え気味にしてやったのに、まだ言うかw
「こんなレスはつけずに無視してれば良かった」のは、まさにお前の様な奴に投げかけられる言葉
こんな >>624 >>626 >>628 例をあげて恥ずかしくないの?
こんな >>637-639 みっともない自演をしておいて、恥ずかしくないの?
- 648 :デフォルトの名無しさん:2016/03/20(日) 11:16:00.38 ID:zSHF45+D.net
- >>646
<div>.*?</div>
- 649 :デフォルトの名無しさん:2016/03/20(日) 12:04:54.80 ID:BKY+bqXr.net
- >>648
ありがとうございました。
- 650 :デフォルトの名無しさん:2016/03/20(日) 20:07:22.01 ID:tOEh7O6K.net
- >>605
それPEG使ったほうがいい。最近勉強したけど楽しい。
構文解析って名前ほどおっかなくないよ
- 651 :デフォルトの名無しさん:2016/03/21(月) 13:05:37.99 ID:NsIeGKek.net
- >>650
普通にパーサー使って
xpathで//div/@idかcssセレクタでdiv[id]でよくね
- 652 :デフォルトの名無しさん:2016/03/31(木) 16:52:39.49 ID:LLptTgcg.net
- 正規表現の文字クラスで質問です。例えば
[0-9]は数字を表しますよね。また、\dも数字ですよね。
\dを[]内で使って[\da-z]で数字と小文字のa-zとかってありなんでしょうか??
縦棒を使って
(\d|[a-z])でやれば明白ですが。
- 653 :デフォルトの名無しさん:2016/03/31(木) 17:03:53.30 ID:LLptTgcg.net
- お騒がせしました。[\d]はありっぽいですね。
- 654 :デフォルトの名無しさん:2016/04/03(日) 00:37:59.69 ID:wkb28L2F.net
- >>647
>>625での主張は「俺は知ってるぜ」
これだけを言いたいがための発言
- 655 :デフォルトの名無しさん:2016/04/03(日) 19:57:17.70 ID:tpyVZV/3.net
- >>654
>>654での主張は「全て論破されていて悔しいです」
これだけを言いたいがための発言
- 656 :デフォルトの名無しさん:2016/04/04(月) 00:17:04.24 ID:TBgct8lK.net
- >>625のいけないところは
素直に知ってたよって言えば誰も噛み付かなかったのに、プライドが邪魔したのかひねくれた言い方をした点
- 657 :デフォルトの名無しさん:2016/04/04(月) 01:37:22.43 ID:TBgct8lK.net
- >>655
勝ち負けを言えば、>>647を書かせた時点で決着してる
相手を全部同一視して粗探しするその品性の悪さを引き出したって点でね
それに、喩えると
交通違反して注意された相手に向かって、みんなやってることだとかお前だってやってた
って言っても自分のしたこととは関係ないことであり論理的に意味がない
- 658 :デフォルトの名無しさん:2016/04/04(月) 21:25:02.74 ID:im7Mb0Qo.net
- 品性の悪さを引き出した -> 勝ち
この論理性の無さ...
それに加えて、無意味な喩え話...
ある程度、会話が通じる人かと思っていたのだが
残念だ。残念な知性だな
正規表現の実例についてもつくづくそう思うが
もう少し考えてから書き込んでみたらどうか?
- 659 :デフォルトの名無しさん:2016/04/04(月) 21:26:10.86 ID:im7Mb0Qo.net
- 勝ち負けと品性が直接の関係は無いが、品性の悪さについて
品性の悪さって、自演をした人が言える事なのか?
たとえ自演がなくとも、
何度も同程度の発言を、そちらからもしている事に気付かないのかな?
>>631の嫌味っぽい口ぶりや、>>634の「解説をば」みたいな上からの物言い
>>634最後の一行では、無意味なただの悪口
そして決定的なのは、自演をしていた事。これについては、同程度どころでは無い
これらは、品性の悪さに該当しないと思っているのか?
- 660 :デフォルトの名無しさん:2016/04/06(水) 09:00:13.83 ID:2zN0IQcS.net
- ワラタw
まさにどちらが最後まで醜態を晒し続けるかの勝負だな
いいぞもっとやれ
- 661 :デフォルトの名無しさん:2016/04/06(水) 10:46:43.24 ID:xAgh0Pyq.net
- JAPANXXX
JAPANYYY
JAPANZZZ
上のような文字列のうち最後のJAPANZZZの部分を取りたいです
XXX YYY ZZZの部分は3文字からなる大文字になっていて
もちろんJAPANZZZで文字列が終わっているわけではありません
今はJAPAN([A-Z]{3})で全て取得したのをリストに入れて
リストの一番最後の要素を取り出すという手法で対応していますが
正規表現1つで出来たりしませんか?
- 662 :デフォルトの名無しさん:2016/04/06(水) 12:52:05.84 ID:BFsTf7eA.net
- 先読み・後読みなどで、出来ない?
- 663 :デフォルトの名無しさん:2016/04/06(水) 13:15:18.35 ID:RIb7jbh2.net
- どうなの
- 664 :デフォルトの名無しさん:2016/04/06(水) 13:17:07.81 ID:xwA6Cy1b.net
- キャプチャで最後に残った値
- 665 :デフォルトの名無しさん:2016/04/06(水) 13:17:59.59 ID:RIb7jbh2.net
- (・∀・)
- 666 :デフォルトの名無しさん:2016/04/06(水) 14:05:37.34 ID:q1HrDxSz.net
- 俺だったら"JAPAN"でsplitして三番目を取る
- 667 :デフォルトの名無しさん:2016/04/06(水) 17:09:53.06 ID:Ek6gxOxq.net
- (?:^JAPAN[A-Z]{3}\n)*(^JAPAN[A-Z]{3})(?:\n|\z)
- 668 :デフォルトの名無しさん:2016/04/07(木) 16:14:06.36 ID:CD0MGG23.net
- perl -0777 -ne '/.*JAPAN([A-Z]{3})/s and print( $1)'
みたいなこと?
- 669 :647:2016/04/07(木) 16:34:11.93 ID:EyxL+HBb.net
- 皆様レスどうもありがとうございました
>>668
これでバッチリです
ちょっと$0はカオスなことになりますが
なるほどなーって思いました
本当ありがとうございました!
- 670 :デフォルトの名無しさん:2016/05/01(日) 11:29:16.87 ID:tKi6j9CT.net
- 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1
- 671 :デフォルトの名無しさん:2016/05/04(水) 09:53:54.35 ID:runBAjzV.net
- FXのヒストリカルデータで、休日の値動きの無い連続複数行(数百〜数千行)範囲を置換で削除したいのですが
正規表現での表記方法はありますでしょうか?
2003.05.09 20:55:00 1.14859 1.14875 1.14853 1.14862 517.5
2003.05.09 20:56:00 1.14867 1.14882 1.14862 1.14882 584.7
2003.05.09 20:57:00 1.1488 1.14886 1.14854 1.14859 1268.8
2003.05.09 20:58:00 1.1487 1.1487 1.14845 1.1485 1089.5
2003.05.09 20:59:00 1.14863 1.14897 1.14838 1.14877 1558.5
2003.05.09 21:00:00 1.14877 1.14877 1.14877 1.14877 0
2003.05.09 21:01:00 1.14877 1.14877 1.14877 1.14877 0
2003.05.09 21:02:00 1.14877 1.14877 1.14877 1.14877 0
上記の例では、2003.05.09 21:00:00以降で1.14877が継続する行全部を削除したいです。
- 672 :デフォルトの名無しさん:2016/05/04(水) 10:33:36.14 ID:kVGM/VsN.net
- できません
- 673 :デフォルトの名無しさん:2016/05/04(水) 11:00:55.09 ID:S+T3H7rB.net
- >>671
一度一致した文字列の複数回出現や繰り返しは、「後方参照」で表現できる
^\d{4}\.\d{2}.\d{2} \d{2}:\d{2}:\d{2} ([.0-9]+) \1 \1 \1 0$
- 674 :657:2016/05/04(水) 15:43:24.43 ID:Z8i1J0Td.net
- >>673
ありがとうございました
- 675 :デフォルトの名無しさん:2016/05/05(木) 14:54:42.43 ID:jemhh2fV.net
- すんませんわけわかんなくなってきた
「1回以上の abcdefg いずれかの文字の繰り返し、ただし ccd+cc を含まない」
例えば abcd 、 ffgabc 、 bbbbbbbbbbbbbdddddbbbbbbb にはヒットし
abcdffgabcbbbbbbbbbbbbbdddddbccdddddddddccbbbbbb をかけると abcdffgabcbbbbbbbbbbbbbdddddb (と bbbbbb )を得られる正規表現
どうやって作ったら良いんでしょうか
- 676 :デフォルトの名無しさん:2016/05/05(木) 15:07:34.77 ID:/qWvSKFr.net
- できません
- 677 :デフォルトの名無しさん:2016/05/05(木) 15:08:33.46 ID:WWv6suKc.net
- >>675
例が悪い。
もう少し簡潔な例をたのむ
- 678 :デフォルトの名無しさん:2016/05/05(木) 15:44:38.89 ID:jemhh2fV.net
- >>677
混乱しててマジすまん。要は>>8の文字列じゃなくてパターンな版なんだと思う
「fuck you hageatama atodekorosuwaboke」からアルファベットのみで構成されるものを取り出したい、
ただしatではじまり間にaを含まずaで終わる範囲は無視させたい
この場合は【fuck、you、hage、ma、boke】を抜き出したい
わずかでもわかりやすくなっただろうか
- 679 :デフォルトの名無しさん:2016/05/05(木) 17:02:33.50 ID:Vl8awOB0.net
- perl -ne 's/at.*?a/ /g ; while ( /([a-z]+)/g ){ print("$1\n") }'
みたいなこと?
- 680 :デフォルトの名無しさん:2016/05/05(木) 17:04:50.71 ID:Vl8awOB0.net
- ごめん、
perl -ne 's/at[a-z]*?a/ /g ; while ( /([a-z]+)/g ){ print("$1\n") }'
の方が適切か?
- 681 :デフォルトの名無しさん:2016/05/05(木) 17:21:59.07 ID:jemhh2fV.net
- そうそう本当まさにそんな感じ
ちょっと面倒な置換処理だから前後逆になるけど今はそうやって2回かけて処理させてる
- 682 :デフォルトの名無しさん:2016/05/06(金) 06:53:01.39 ID:x6pgYKN7.net
- 置換無しでやりたいならできなくもないが……
perl -ne 'print("$_\n") foreach grep { defined } /at[a-z]*?a|((?:(?!at[a-z]*?a)[a-z])+)/g'
あまりおすすめする気にはならない。
- 683 :デフォルトの名無しさん:2016/05/06(金) 07:23:44.50 ID:x6pgYKN7.net
- これの方がいいかな……
perl -ne 'print("$_\n") foreach map { /([a-z]+)/g } /\G(.*?)at[a-z]*?a/cg , /\G(.*)/'
- 684 :デフォルトの名無しさん:2016/05/08(日) 17:29:17.30 ID:TO5u1IEC.net
- ムリしてみた
print $1 while /(?:^|\s+|at[b-z]*a)?([a-z]+?)(?:$|\s+|at[b-z]*a)/g;
普通はこんな感じだろうな…
print foreach grep /^[a-z]+$/, split(/\s+|at[b-z]*a/);
- 685 :デフォルトの名無しさん:2016/05/08(日) 22:30:43.49 ID:F7OZ3lhh.net
- ある関数の第一引数の中身Aだけをとるような正規表現を書いているのですが上手く書けません。
サクラエディタのgrepで試しています。
本文:
func('A','B','C')
正規表現(funcから第一引数のシングルクォーテーションまでひっかかってしまう)
func\('.+?'
- 686 :デフォルトの名無しさん:2016/05/08(日) 22:53:57.63 ID:Se7Rfius.net
- >>685 こういうのじゃなくて?前段(?<=look-behind)に可変長使えないけど
(?<=func\(').+?(?=')
- 687 :デフォルトの名無しさん:2016/05/08(日) 23:12:33.60 ID:F7OZ3lhh.net
- 関数の前の文は可変長でなく、行頭固定になっています。
↑こういうことでいいのでしょうか??
結果として「A」が欲しいのですが、
「array('A'」が返ってきます。
抽出には2つぐらい側面があると思います。
1.関数の構文を抽出
2.第一引数を抽出(囲み文字除去)
これを一度にできるのかよくわかっていません。
最低限の情報「func('A'」は取れているので、
ここから整形していくのでも事足りますが。
- 688 :デフォルトの名無しさん:2016/05/08(日) 23:33:47.20 ID:Se7Rfius.net
- >>687
>>686で取れない?結果出力を該当部分(P)にしても?
・うちとこの出力
> □検索条件 "(?<=func\(').+?(?=')"
> 検索対象 *
> フォルダ M:\home\kirin\desk
> (サブフォルダを検索しない)
> (英大文字小文字を区別しない)
> (正規表現:bregonig.dll Ver.3.06 with Onigmo 5.15.0)
> (文字コードセットの自動判別)
> (一致した箇所のみ出力)
> ◎"C:\home\mityaiyan"
> ■
> ◆"無題1.txt" [SJIS]
> ・( 1,7 ): A
> 1 個が検索されました。
・C:\home\mityaiyan無題1.txt の内容
> func('A','B','C')
- 689 :デフォルトの名無しさん:2016/05/08(日) 23:40:40.22 ID:Se7Rfius.net
- フォルダ名誤魔化せてねえw酔っ払いは寝ますw
- 690 :デフォルトの名無しさん:2016/05/08(日) 23:41:37.38 ID:F7OZ3lhh.net
- >>688
ありがとうございます。取れました!
たまに正規表現使うけど、毎回つまづきます。
ドリルみたいなのやろうかなぁ。
- 691 :デフォルトの名無しさん:2016/05/08(日) 23:50:09.70 ID:Se7Rfius.net
- あ、よかったよかったw
sakuraでも出来るけど、vimのインクリメンタルサーチ(キーボードコマンド / )が
即反応すっから楽よ(vimrcに :set hlsearch incsearch)。windowsならkaoriyaさん行けばなんとかなるっしょ。
- 692 :デフォルトの名無しさん:2016/05/09(月) 00:25:28.10 ID:d1XxHLWY.net
- はい、試してみます!
vim使えるとかっちょいいですよね。
- 693 :デフォルトの名無しさん:2016/05/10(火) 14:28:46.48 ID:vqaogAj1.net
- []や|で条件を書き並べる場合って頻出するものほど左側に書いたほうがいいのでしょうか?
左から順に調べてるようならその方がいいかなと思ったのですが
- 694 :デフォルトの名無しさん:2016/05/10(火) 16:04:02.58 ID:eU8B0sOX.net
- Perl で (pat1|pat2) という書き方をした場合は pat1 にマッチしたら pat2 は試行されない。
perl -e 'print("abcde" =~ /(c.|.de)/ )'
だからマッチさせたい順に書く必要がある。
文字クラスの場合は「そこに書いてあるすべての文字」に含まれるか(あるいは含まれないか)だから順序は関係ない。
処理系の実装の仕方によっては速度に影響するかもしれないが心配するほどの事はないだろう。
Perl じゃないなら違うルールがあるかもしれない。マニュアルに書いてあるかもしれないし明確には書いてないかもしれない。
- 695 :デフォルトの名無しさん:2016/05/10(火) 16:26:20.31 ID:eU8B0sOX.net
- (pat1|pat2) と書いたときの pat1 と pat2 が排他的にしかマッチしないと判ってるなら
頻出するものほど先に試行されるように書けば速くなる可能性はある。
でもそれが「左から順に」なのかどうか…少なくとも Perl はそうだし大抵そうだとは思うけど……
- 696 :デフォルトの名無しさん:2016/05/10(火) 16:49:53.11 ID:eU8B0sOX.net
- もしかしてだけど、flex とかを使ってるなら、頻出する順かどうかはあまり関係ないことになる。
これはパターンを DFA にコンパイルしているからで、grep も可能な場合はそうしているらしい。
おそらくあなたはそんなややこしいことを知りたかったわけではないでしょう。本当に申し訳ありません。
でも結局の所、あなたが何を使っているのか判らないので明確には言えないのです。
- 697 :デフォルトの名無しさん:2016/05/10(火) 16:54:06.71 ID:1NI6zfsZ.net
- 速度は実測が基本
- 698 :デフォルトの名無しさん:2016/05/10(火) 23:01:59.50 ID:4a+25nqa.net
- DFA型は原理的に最長一致になる
たとえばAWKはそのパターン
NFA(VM)型はそうではない
Perlなど
- 699 :デフォルトの名無しさん:2016/05/13(金) 17:17:28.22 ID:+WUK7FN+.net
- ここに書いてある正規表現はどう書けばいいでしょうか?
http://potato.2ch.net/test/read.cgi/software/1463030885/10
- 700 :デフォルトの名無しさん:2016/05/13(金) 17:34:44.27 ID:+WUK7FN+.net
- と実体参照で空白文字が保存されていました
ありがとうございました
- 701 :デフォルトの名無しさん:2016/05/13(金) 17:35:05.24 ID:+WUK7FN+.net
- &#32;と実体参照で空白文字が保存されていました
ありがとうございました
- 702 :デフォルトの名無しさん:2016/05/30(月) 21:09:44.20 ID:IB3IbmGC.net
- ソフトウェア板のwhitebrowserスレで質問しましたが人がいないようなので
ここで質問させてください。
<div class="aaa"></div>
<div class="bbb">
<p class="ccc">文字列komento
<div class="ddd">文字列<A href="http://eee/" >文字列</A>文字列</DIV></DIV>
webから文字列komentoの部分が欲しいんですが
if(line.match(/<p class="ccc">(.+)<div class="ddd">/)){
komento = RegExp.$1.strip();
continue;
}
だとぜんぜんヒットしません。
<p class="ccc">と文字列komentoは分断されてるみたいでヒットしません。
複数行にわたるときは(.+)を([\s\S]+)にすればよいと書いてあったんですがだめです。
よろしくお願いします。
- 703 :デフォルトの名無しさん:2016/05/30(月) 21:36:52.13 ID:6l/rGwyM.net
- >>702
改行(\n)は (.*) ではキャプチャできない
[\s\S]* とか [.\r\n]* とか
- 704 :デフォルトの名無しさん:2016/05/30(月) 21:39:28.59 ID:6l/rGwyM.net
- よく読んでなかった
[\s\S]+?でダメだったのか
- 705 :デフォルトの名無しさん:2016/05/30(月) 21:55:01.60 ID:NPHl4wm3.net
- lineという変数名から推測するに、元々この変数に
一行分の文字列しか入ってないとか? もしそうなら
dddの方のdivはないのでマッチしないだろうな。
- 706 :688:2016/05/30(月) 22:52:36.47 ID:IB3IbmGC.net
- お答えありがとうございます
>>703
だめです
>>704
だめでした
>>705
まったく初心者でプログラムわからない状態で人がつくったものを改造してるので
もっとがんばってみます
上のほうにネストはParser使えとか書いてありましたがこれは違うのでしょうか
if(line.match(/<div class="ddd">(.+)/)){
komento = RegExp.$1.strip();
continue;
}
こうやると 文字列<A href="http://eee/" >文字列</A>文字列</DIV></DIV> これはものすごいヒットするんですが
/<p class="ccc">(.+)/ だとぜんぜんだめで/<p class="c(.+)/ こうやると cc"> とヒットします
</p>が省略されてると無理なんでしょうか
- 707 :デフォルトの名無しさん:2016/05/30(月) 23:10:10.83 ID:IB3IbmGC.net
- var lines = request.responseText.split('\n');
for(var i = 0 ; i < lines.length ; i++) {
var line = lines[i].strip();
上のほうにこういうふうに書いてあります
もうひとつの文字列取得には
if(title == '' && line.match(/<\/h1>/)){
var lineContainsPrev = lines[i - 1].strip() + line;
if((lineContainsPrev.match(/<h1 .+<span id="title[^"]+">([^<]+).+<\/h1>/) ||
lineContainsPrev.match(/<h1 id="title[^>]+>(.+)<\/h1>/))){
title = RegExp.$1.strip();
}
}
こう書いてあります
なるほどi-1とかlineとか691さんの指摘でがんばってみます
- 708 :デフォルトの名無しさん:2016/05/30(月) 23:14:45.25 ID:7kwM1x1R.net
- regexp
- 709 :デフォルトの名無しさん:2016/05/31(火) 00:35:17.36 ID:Fu4PLM5v.net
- .split('\n')で各行を分離して配列に格納してるんだぜ
これが解からないのなら改造はまだ早いんじゃないか
- 710 :デフォルトの名無しさん:2016/05/31(火) 03:14:16.76 ID:Dv/sZKtx.net
- >>709
ありがとうございます
なるほどそういうことか
- 711 :デフォルトの名無しさん:2016/06/03(金) 16:43:00.18 ID:omAy1yMo.net
- 保存した複数のhtmlファイルから特定の段落を削除したくて、秀丸エディタと正規表現にたどり着きました
単調な文字列を置き換え削除する分には何とかなりましたが、下記のような段落を削除したいところで詰りました
かなり長くなってるところは〜省略〜で省きました
<script src="%E7%8F%BE%E5%〜省略〜_files/widgets.js" id="twitter-wjs"></script>
<script type="text/javascript" src="%E7%8F%BE%E5%〜省略〜%83%A9%E3%82%A4B_files/analytics.js"></script>
<script type="text/javascript">archive_ana〜省略〜_ms=149;</script>
<link type="text/css" rel="stylesheet" href="%E7%8〜省略〜/banner-styles.css">
これを丸ごと削除したいのですが、うまくできないでしょうか
ご教授いただけると助かりますOrz
- 712 :デフォルトの名無しさん:2016/06/03(金) 16:52:28.32 ID:oVxvX7jc.net
- >>711
そういうのはパーサつかってxpathやcssセレクタで指定するといいよ
- 713 :デフォルトの名無しさん:2016/06/03(金) 17:13:46.63 ID:omAy1yMo.net
- >>712
秀丸エディタをDLして、正規表現をググったのが1時間くらい前の自分にはもう手に負えないですね
とても経験値が足りない・・・大人しく手作業に戻ります
レスありがとうございましたorz
- 714 :デフォルトの名無しさん:2016/06/03(金) 18:13:59.18 ID:1QnvZmyp.net
- オンデマンド
- 715 :デフォルトの名無しさん:2016/06/03(金) 18:22:31.49 ID:IHHtpHf1.net
- 秀丸より「複数行置換」っていうソフトならとっつきやすいかもしれない
正規表現でなくともお望みの作業が捗る可能性があると思う
- 716 :デフォルトの名無しさん:2016/06/03(金) 18:49:20.79 ID:534uxXCy.net
- もう少し条件を明確にしてほしい。
単に script,script,script,link の順に現れた時に削除したいなら特に難しくは無い。
perl -0777 -pe 's%(?:(?><script.*?>.*?</script>)\s*){3}<link.*?>%%'
ただ、タグの終わり以外で > があったらとかそういうことを考えるとちゃんとパーサを使った方がいい。
そうでなくても、属性値が関係あるなら多分、パーサを使う方が楽。
- 717 :デフォルトの名無しさん:2016/06/03(金) 19:31:31.26 ID:omAy1yMo.net
- >>715
早速試してきましたが、範囲を決める表現が出来ずやはりダメでした
ソフトが多く出てるのでもっと気軽に出来るかと思ったんですがやはり難しいですねOrz
- 718 :デフォルトの名無しさん:2016/06/03(金) 19:40:07.02 ID:omAy1yMo.net
- >>716
複数のhtmlファイルがあり、それぞれの中に
http://i.imgur.com/sVuSXPN.jpg
この段落があり、これを楽に削除したいんです
これが長く、中の文字列がそれぞれ異なっているんです
- 719 :デフォルトの名無しさん:2016/06/03(金) 19:43:03.37 ID:omAy1yMo.net
- パーサってのをググってみたが、素人の毛みたいな自分にはとても手が出せないとだけよくわかりました
自分では楽に出来ないというのがわかっただけでも少しすっきりしました
_| ̄|○ 構ってくれてありでした
残り65ファイル・・・がんばるぞ(´Д`)
- 720 :デフォルトの名無しさん:2016/06/03(金) 20:15:24.35 ID:VlhAlbVL.net
- orz
- 721 :デフォルトの名無しさん:2016/06/03(金) 20:15:55.42 ID:VlhAlbVL.net
- orz
- 722 :デフォルトの名無しさん:2016/06/03(金) 20:18:33.85 ID:VlhAlbVL.net
- hy
- 723 :デフォルトの名無しさん:2016/06/03(金) 20:29:12.24 ID:lvHDuhOW.net
- 素人に毛が生えたとは言うけど毛の部分かよw
- 724 :デフォルトの名無しさん:2016/06/03(金) 21:47:07.35 ID:534uxXCy.net
- そんなにたくさんあるなら……というか、なぜそんなことになってるのかも気になりますが、
諦めるにはまだ早いように思いますよ。
手作業でできるなら、その部分を見分けているということでしょう?
見分けることができるならそれをプログラムにすればいいんです。
あるいは逆転の発想で、残す部分を特定してそれ以外を削除するという方法もあります。
- 725 :デフォルトの名無しさん:2016/06/04(土) 00:15:52.08 ID:3lsMjWzh.net
- 正規表現でも、複数行マッチはできる
マッチする始まりと終わりを、明確に定義して
始まりは、
<script
終わりは何?
そして、最短・最長マッチのどちら?
- 726 :デフォルトの名無しさん:2016/06/04(土) 00:48:33.64 ID:Ps50QdLu.net
- >>725
多分そんな簡単なものじゃないだろう
複数のhtmlで全部記述が違うらしい
<script src=〜 />は広告らしきものwidgets.js等が含まれるものをチェックか?
<script type=〜や<link type=〜の方は何だろう
analytics.jsやarchive_ana、banner-styles.css等の広告らしこものを含むってことかな?
どれくらいhtmlファイルがあるのかにもよるけど、
俺なら、20個程度までならキーワード検索して手動で置換していくことを選ぶな
- 727 :デフォルトの名無しさん:2016/06/05(日) 13:37:52.64 ID:j94Yoh41.net
- スクレイピングでググると幸せになれるかもね。
ブラウザに読み込んで jQuery 辺りでやってもいいけど。
- 728 :デフォルトの名無しさん:2016/06/05(日) 14:14:35.14 ID:iA3zFnyd.net
- うむ
- 729 :デフォルトの名無しさん:2016/06/12(日) 03:31:34.52 ID:73Qykobl.net
- d12.IDやd34asd.Q23のようにdhogehoge.hugaをIDやQ23のようにhugaのみにしたいときは
どのように書けば引っかかってくれるでしょうか。
d*.のように書きましたがダメでした。
- 730 :デフォルトの名無しさん:2016/06/12(日) 07:27:48.72 ID:zd4DMI3N.net
- * はグロブ・正規表現で、異なる意味
グロブでは、0文字以上の任意の文字列
正規表現では、直前の文字が0個以上。
.* は、0文字以上の任意の文字列
- 731 :デフォルトの名無しさん:2016/06/13(月) 09:02:38.16 ID:IO7ImC7y.net
- d.*?\.
- 732 :デフォルトの名無しさん:2016/06/13(月) 09:13:51.82 ID:trc3/qjd.net
- 横d
- 733 :デフォルトの名無しさん:2016/06/13(月) 23:35:01.47 ID:Jxar6H6t.net
- >>731
>>730
無事出来ました。ありがとうございます。
- 734 :デフォルトの名無しさん:2016/06/14(火) 20:43:13.97 ID:JpAU7CI1.net
- ぐぐってもちんぷんかんぷんでしたので助けてください!!1!1
複数桁の数字(桁数は2~8桁)
ここにあれこれ
ここに書き換えたい文字列
という書式の場合で複数桁の数字が10未満(以下でもかまわない)ならx、
11以上20未満(以下でもry)ならy、21以上30未満(ry)ならzという具合に三行目の部分を一行目の数字に応じて書き換えたいです
ソフトは複数行置換?というのを使おうと思っています!!へぷるみー!!!
- 735 :デフォルトの名無しさん:2016/06/14(火) 21:07:54.45 ID:MJXh41jF.net
- テンプレ使って書き直せ
- 736 :デフォルトの名無しさん:2016/06/15(水) 09:03:40.70 ID:UhMCD/nz.net
- とりあえず自分の言いたい事を整理する事と日本語の勉強から始めろ
- 737 :デフォルトの名無しさん:2016/06/15(水) 09:15:50.44 ID:5nGrgvW4.net
- 何を言ってるんだか
- 738 :デフォルトの名無しさん:2016/06/15(水) 09:34:23.84 ID:mJGEUiRz.net
- どう考えても正規表現よりスクリプト書いたほうが早い案件
- 739 :デフォルトの名無しさん:2016/06/15(水) 09:51:44.41 ID:YIat+Pjl.net
- すみません!!720ですが自決しました!!!
ありがとうございました!!!
- 740 :デフォルトの名無しさん:2016/06/15(水) 09:59:41.38 ID:zRCZ15a1.net
- じけつ [自決]
1.自分の意志で態度・行動などを決めること。
2.責任をとって自殺すること。自裁。
- 741 :デフォルトの名無しさん:2016/06/15(水) 13:11:46.34 ID:ltaRG/Ox.net
- >>739は2だろうね
- 742 :デフォルトの名無しさん:2016/06/15(水) 13:27:37.45 ID:nv7wJLuk.net
- >>739
生きろ!
- 743 :デフォルトの名無しさん:2016/06/15(水) 15:20:34.12 ID:gZwGLfL5.net
- 正規表現2.0を作って、区切り文字で複数表現可能、否定表現あり、文字コード指定可能に
拡張する動きはないのだろうか
- 744 :デフォルトの名無しさん:2016/06/17(金) 06:39:43.91 ID:/w4sLl17.net
- ●Regular Expressionの使用環境
鬼車系のbregonig.dll 3.06対応テキストエディタ
●検索か置換か?
置換
●説明
前でマッチした文字列と同じ文字列が後ろで出てきたら、
その間の文字を区切り文字カンマに置換したい
●対象データ
hogefugahoge
イチロー林イチロ
●希望する結果
hoge,hoge
イチロ,イチロ
実際の対象データは改行を跨ぐこともあるのですが、
それだとbregonig.dll対応テキストエディタでメジャーなサクラエディタで
動作確認できないので、
サンプルデータは改行を跨がないものにしました。
宜しくお願いします。
- 745 :デフォルトの名無しさん:2016/06/17(金) 07:13:49.91 ID:8ETU/t+F.net
- (´・ω・`)
- 746 :デフォルトの名無しさん:2016/06/17(金) 07:18:02.69 ID:vEeDcLaa.net
- .
- 747 :デフォルトの名無しさん:2016/06/17(金) 07:51:45.05 ID:Q79nDsuO.net
- (.{2,})(.+?)\1
$1,$1
このサンプルデータだけなら動確サクラエディタ
- 748 :デフォルトの名無しさん:2016/06/17(金) 08:01:19.73 ID:izLNj4Mm.net
- 肯定・否定の先読み・後読みで、できないか?
- 749 :デフォルトの名無しさん:2016/06/17(金) 11:52:55.98 ID:MU7aCzOf.net
- マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !
- 750 :デフォルトの名無しさん:2016/06/17(金) 19:34:05.50 ID:yged7CRH.net
- 皆さんは肯定、否定、先読み、後読みの記号をどういう風に覚えているの?
何度覚えても忘れるんです。
- 751 :デフォルトの名無しさん:2016/06/17(金) 19:45:29.03 ID:BW6jIpWJ.net
- 使ってりゃ覚えるだろ
- 752 :デフォルトの名無しさん:2016/06/17(金) 20:14:27.15 ID:2jKkT25y.net
- そらそうだ
- 753 :デフォルトの名無しさん:2016/06/17(金) 21:42:53.66 ID:pDomqkOe.net
- あるAndroidアプリで、任意の2つの文字列が、下記のようにセットされているのですが、この真ん中のダブルコロンをイコールで挟む意味が解りませんでした
そもそも正規表現でしょうか?
文字列あいう=:=文字列かきく
- 754 :デフォルトの名無しさん:2016/06/18(土) 00:00:12.34 ID:TDIsYK64.net
- ねづっちがなんだって?
- 755 :デフォルトの名無しさん:2016/06/18(土) 01:59:37.22 ID:q51kEhx9.net
- <=>
これは、宇宙船
- 756 :デフォルトの名無しさん:2016/06/18(土) 15:01:36.56 ID:AGMP56Qn.net
- >>750
加法定理とか倍角の公式とか
和積公式積和公式全部言えるか?
- 757 :デフォルトの名無しさん:2016/06/20(月) 23:56:45.49 ID:2ch+sFRM.net
- mateで絵文字を正規表現で全部ひっかけたいんだけどシステム屋さん当該の正規表現おせーて
- 758 :デフォルトの名無しさん:2016/06/23(木) 18:19:47.68 ID:9ARC/f7H.net
- [+-0-9.]
と書いた場合
+
-
0〜9
小数点 .
のどれか一文字と言う意味になりますか?
マイナス記号が0-9なら範囲を表すのに
+-0
の部分では範囲と間違った解釈される心配は無いのですか?
- 759 :デフォルトの名無しさん:2016/06/23(木) 18:21:44.72 ID:E1t+8hag.net
- めっちゃあるよ
- 760 :デフォルトの名無しさん:2016/06/23(木) 18:22:27.67 ID:O6DvkpvP.net
- 気になるならこれで
[+\-0-9.]
- 761 :デフォルトの名無しさん:2016/06/23(木) 18:23:14.87 ID:O6DvkpvP.net
- >小数点 .
>のどれか一文字と言う意味になりますか?
ここは小数点のみを期待するなら \. と書く必要があるんじゃね
- 762 :デフォルトの名無しさん:2016/06/23(木) 18:40:42.16 ID:Aga9lXuQ.net
- []の中じゃ、 '.' や'*'はメタ文字じゃなくて文字の'.','*'を意味する
他にも '^'は先頭に記述したときのみ否定というメタ文字になるが途中だと'^'という文字を表す
'-'は先頭に書いたときには\でエスケープしなくてもいいが推奨は必ず\でエスケープすること
- 763 :デフォルトの名無しさん:2016/06/23(木) 18:49:12.90 ID:QqtwN9tu.net
- 小数点なら \,\d とかにしないと
- 764 :デフォルトの名無しさん:2016/06/23(木) 18:59:53.50 ID:kXV5qe3k.net
- []内では.や+はメタ文字ではなくただそのままの文字
-は文字の間にある場合だけ文字コードの範囲を表す
だから[-+0-9.]や[+0-9.-]なら望み通り
- 765 :デフォルトの名無しさん:2016/06/23(木) 22:21:43.36 ID:Q9+hvKHV.net
- 確かに、固定されて絶対変わらない保証があるなら仕様に従い-をそのまま書ける状況もあるけど
可読性なんかを考えたらエスケープしてやるのが確実だと思うわ
- 766 :デフォルトの名無しさん:2016/06/23(木) 22:48:52.41 ID:kXV5qe3k.net
- そうだね
特に会社とか複数の人がメンテナンスに携わる環境ではむしろ積極的に\を付ける事になってたりする
- 767 :デフォルトの名無しさん:2016/06/24(金) 11:12:00.03 ID:QDx4C0nH.net
- 付けなくていい場所に付けるのは可読性を損なうしメンテナンス性も悪化する
- 768 :デフォルトの名無しさん:2016/06/24(金) 11:39:01.26 ID:+GusP/54.net
- 人それぞれなもんだね
- 769 :デフォルトの名無しさん:2016/06/24(金) 16:15:54.83 ID:35cWfWGi.net
- 他のは\付けないけど-だけは付けるようにしてる
- 770 :デフォルトの名無しさん:2016/06/24(金) 22:35:52.86 ID:tRHi5MPl.net
- [\]ではなくて[\\]が正しいですか?
- 771 :デフォルトの名無しさん:2016/06/24(金) 23:02:08.35 ID:+GusP/54.net
- [\]だと\は\]で消費されて閉じの]が無くなる
- 772 :デフォルトの名無しさん:2016/06/25(土) 01:01:10.18 ID:FsDaEVc+.net
- \はエスケープのメタ文字なので、文字の\を表すには\を\でエスケープする必要がある
つまり\\
- 773 :デフォルトの名無しさん:2016/06/25(土) 20:32:26.47 ID:6chkZTSI.net
- >>753
コロンでした済みません
:=(コロンイコール)で代入演算子までは分かったんですが
動作的には、正規表現|のようでした
条件A=:=条件B
- 774 :デフォルトの名無しさん:2016/06/26(日) 04:27:16.34 ID:0bHamb0Z.net
- >>773
https://doc.perl6.org/routine/%3D%3A%3D#language_documentation_Operators
これじゃないの?
とりあえず、スレ違いだから他所で聞き直したほうがいい
- 775 :デフォルトの名無しさん:2016/06/26(日) 12:19:10.23 ID:0pF/e0UG.net
- 今度は「Regrexit」、EU離脱を「後悔」
http://www.cnn.co.jp/tech/35084882.html
2016.06.26 Sun posted at 10:36 JST
ロンドン(CNN) 欧州連合(EU)からの離脱を問う国民投票で離脱派が勝利した英国で、
離脱に票を投じた有権者から、結果を受けて思い直したとの声も上がっている。
Britain(英国)とExit(退出)を組み合わせた造語「Brexit」に続いて、
ツイッターにはRegret(後悔)とExitを合わせた「Regrexit」というハッシュタグが登場した。
中部マンチェスターの有権者、アダムさんは英BBCとのインタビューで「私の票にあまり意味はないと思っていた。
どうせ残留だろうと予想していたから」「キャメロン首相の辞任表明には、正直言って仰天した」と不安をあらわにした。
離脱に票を入れたマンディさんという女性も24日、夕刊紙ロンドン・イブニング・スタンダードに
「今朝になって現実を知り、後悔し始めている。もう一度投票するチャンスがあれば意見を変えるのに」と語った。
イングランド南西部のコーンウォール州は国民投票で離脱を支持したが、
これまでEUから受け取っていた補助金が途絶えては困るとの懸念が浮上し、英政府に「保護」を求めている。
同州には10年以上前から、EUから年平均6000万ポンド(約84億円)が交付されていた。
州議会は政府に、これと同等の額の保証を求める構えだ。
再投票を求めるインターネット上の請願には25日午後の時点で200万人を超える署名が集まり、
議会での審議に必要とされる10万人の署名を上回った。
28日に下院の特別委員会が取り上げる見通しだという。
- 776 :デフォルトの名無しさん:2016/06/26(日) 23:30:24.64 ID:I/qBn3J5.net
- >>774
コンテナ演算子?初めて聞きました
他で伺ってみたいと思います
ありがとうございました
- 777 :デフォルトの名無しさん:2016/06/27(月) 00:14:08.67 ID:ywseg4PN.net
- cv
- 778 :デフォルトの名無しさん:2016/06/29(水) 15:19:08.79 ID:jeflfaNJ.net
- bash 4.2.46
grep 2.20 です。
以下のように文字列中の大かっこにパターンマッチしたいんですが、
なぜマッチしないのかわかりません。
$string="[string"
echo $string | grep [\[\]] <-マッチしない
echo $string | grep [\]\[] <-[と]を逆にするとマッチする
- 779 :デフォルトの名無しさん:2016/06/29(水) 16:19:59.57 ID:Hg0Bm2HH.net
- シェルでも、*, \ などは、メタ文字だから、
grep では、" " で囲まないと、grepよりも先に、シェルが解釈してしまうのかな?
grep "[\[\]]"
bash -ivx オプションを付けて、
grep [\[\]] が、どう展開されるのか見てみ
- 780 :デフォルトの名無しさん:2016/06/29(水) 16:46:07.08 ID:jeflfaNJ.net
- ダブルクオートでくくると、マッチしていた[\]\[]もマッチしなくなりました。
ivhをつけてみると、grep [[]]と grep [][] と表示されました。
正規表現の[] のなかで、「[」や「]」自身にマッチさせるのはなんか特殊
な方法がいるんでしょうか?
- 781 :デフォルトの名無しさん:2016/06/29(水) 16:50:20.39 ID:jeflfaNJ.net
- あ、マニュアルを見たら以下のように書いてありました。
リテラル ] を含めるには、この文字をリストの先頭に
置いてください
だから[[]]はだめで、[][]はOKなんですね。
- 782 :デフォルトの名無しさん:2016/06/29(水) 17:08:24.12 ID:Hg0Bm2HH.net
- var re1 = /[\[\]]/;
var re2 = /[\]\[]/;
var str = "[str";
console.log(str.match(re1));
console.log(str.match(re2));
JavaScriptだと、どちらも、1文字目の、[ で一致する
名前欄に、764と入れて投稿して
- 783 :デフォルトの名無しさん:2016/06/29(水) 17:13:00.14 ID:y/YEecXu.net
- お津
- 784 :デフォルトの名無しさん:2016/06/29(水) 17:13:59.01 ID:y/YEecXu.net
- thx
- 785 :デフォルトの名無しさん:2016/06/29(水) 17:23:12.29 ID:GdB71I0S.net
- bash使えんから想像なんだけど、
シェルで\がエスケープだとして、正規表現に\を渡すにはさらに\を\でエスケープすればどうかな?
[\\[\\]]
- 786 :764:2016/06/29(水) 17:29:05.52 ID:jeflfaNJ.net
- ちなみに、grep のマニュアルには続きがあって以下だそうです。
初めて知りました。bashの正規表現でも同じ使い方じゃなくちゃダメでした。
----------------------------
リテラル ] を含めるには、この文字をリストの先頭に
置いてください。同様に、リテラル ^ を含めるには、この文字をリスト
の先頭以外に置いてください。リテラル - を含めるには、この文字をリ
ストの最後に置いてください。
- 787 :デフォルトの名無しさん:2016/06/29(水) 17:39:05.32 ID:Hg0Bm2HH.net
- シェルスクリプトは落とし穴が多いから、難しいんだよ
Bashでは、! もエスケープ必要だし、
-(ハイフン)が文字列の最初に来ると、
オプションに解釈されるから、エスケープすらできないし
プログラミング言語の方が、文字列でエスケープする文字が少ないから、簡単
- 788 :デフォルトの名無しさん:2016/06/29(水) 17:42:13.89 ID:Hg0Bm2HH.net
- [ ] 内では、[, ], ^, - の4つは、特殊な意味を持つから、要注意!
- 789 :デフォルトの名無しさん:2016/06/29(水) 17:48:33.01 ID:jeflfaNJ.net
- \でエスケープすればOKと思ってたのが、そういうもんでもないんですね。
理由は分かりませんが。。
ご協力ありがとうございました。
- 790 :デフォルトの名無しさん:2016/06/29(水) 18:07:51.08 ID:63bvN4qa.net
- シェルが絡むと厄介なんだね
勉強になった
- 791 :デフォルトの名無しさん:2016/06/29(水) 18:13:44.58 ID:lTepsFDI.net
- um
- 792 :デフォルトの名無しさん:2016/06/29(水) 19:12:33.05 ID:xPFVh+mM.net
- KO
- 793 :デフォルトの名無しさん:2016/06/29(水) 19:24:59.88 ID:y0UpPgVv.net
- grep等では文字クラス内でのバックスラッシュは「エスケープ」の意味を持たない
> しかし、egrepのほとんどのバージョンでは、文字クラス内のバックスラッシュは特別な意味を
> 持たず、そのため、文字クラス内では “エスケープサービス” を提供しない。
詳説正規表現
https://books.google.co.jp/books?id=RJFJ2I-thlsC&lpg=PA31&q=%22%E6%96%87%E5%AD%97%E3%82%AF%E3%83%A9%E3%82%B9%E5%86%85%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%22
> キャラクタクラスの中では多くのメタキャラクタがその意味を失います。特に、伝統的な
> egrepでは、[]の中では\によるエスケープも効きません(\自体もその特殊な意味を失ってしま
> う)。そういった場合に]や^、-といった[]内で特殊な意味を持つキャラクタをクラスに含めた
> いときには []^-]のように記述します。つまり、^は[の直後以外に、]は[の直後(補集合を指
> 定しているときには^の直後)に置き、-はリストの最後に置くというやり方を使います。
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html#CCLASS
- 794 :デフォルトの名無しさん:2016/07/08(金) 18:50:11.04 ID:ToKmZmSe.net
- よろしくお願いします。
●Regular Expressionの使用環境
Excel 2013 VBA(VBScript.RegExp)
●検索か置換か?
置換
●説明
数字端のスペースを含まずに後方参照したい
●対象データ
1 2 3 4 5 ABC
1 2 3 4 5ABC
●希望する結果
1 2 3 4 5
^^^^^^^^^
1 2 3 4 5
^^^^^^^^^
- 795 :デフォルトの名無しさん:2016/07/08(金) 19:17:00.63 ID:dMXcsc44.net
- z
- 796 :デフォルトの名無しさん:2016/07/08(金) 19:20:55.77 ID:EpqqXInU.net
- >>794
すみません。
●対象データ
1 2 3 4 5 ABC
1 2 3 4 5ABC
12345 ABC
12345ABC
●希望する結果
1 2 3 4 5
^^^^^^^^^
1 2 3 4 5
^^^^^^^^^
12345
^^^^^
12345
^^^^^
でお願いします。
- 797 :デフォルトの名無しさん:2016/07/08(金) 20:17:02.45 ID:WS5P2nLb.net
- おお
- 798 :デフォルトの名無しさん:2016/07/09(土) 00:09:33.22 ID:603N+6Q0.net
- >>796
.Replace(" ?ABC$", "")
- 799 :デフォルトの名無しさん:2016/07/09(土) 13:30:44.81 ID:XZ2f4NeC.net
- >>796
([0-9]( ?[0-9])*)
- 800 :デフォルトの名無しさん:2016/07/09(土) 14:15:53.95 ID:eZEsospS.net
- 横d
- 801 :デフォルトの名無しさん:2016/07/11(月) 17:21:37.38 ID:NUOClU+i.net
- >>798-799
ありがとうございました
先読みで(.*)(?=\s*)だとマッチせず困ってました
- 802 :デフォルトの名無しさん:2016/08/09(火) 17:00:14.44 ID:xm47cYIn.net
- XX-12,53,88-35,27,95-57,11,71-...
みたいな文字列があって-数字,数字,数字-の部分は複数回続くんだけど
XXの部分と数字の部分をキャプチャする正規表現って一つで書ける?
環境は何でもいい
- 803 :デフォルトの名無しさん:2016/08/09(火) 18:35:54.95 ID:n5pitoha.net
- (..\-\d\d,\d\d,*)*
- 804 :デフォルトの名無しさん:2016/08/10(水) 13:56:01.53 ID:QZxl2haI.net
- これは嫌なのか?
(XX)|(\d+)
- 805 :デフォルトの名無しさん:2016/08/23(火) 13:12:53.43 ID:XDK3PVFI.net
- ●Regular Expressionの使用環境
Mery 2.5.2
●検索か置換か?
置換
●説明
カッコ内にカッコのある1個目のカッコのみを削除したい
●対象データ
(あああ(いいい)ううう)えええ(おおお)
●希望する結果
えええ(おおお)
- 806 :デフォルトの名無しさん:2016/08/23(火) 13:59:38.30 ID:MLERxFDs.net
- 例文ならこれでいけるが汎用性はどうかな?
\(.*?\(.*?\).*?\)
- 807 :デフォルトの名無しさん:2016/08/23(火) 14:11:34.85 ID:XDK3PVFI.net
- >>806
上手くいきました。どうもありがとうございました。
ただ
(あああ(いいい)ううう)えええ(おおお(かかか)ききき)
となっていると全文がマッチしてしまいました
- 808 :sage:2016/08/23(火) 15:21:16.40 ID:R3EL7dRR.net
- ¥([^()]*¥([^()]*¥)[^()]*¥)
- 809 :デフォルトの名無しさん:2016/08/23(火) 16:13:26.40 ID:XDK3PVFI.net
- >>808
ありがとうございます。
すべてのカッコ内カッコが検索されますが、
(あああ(いいい)ううう)えええ(おおお(かかか)ききき)
の場合でも、1個目のカッコ内カッコのあるカッコだけを検索して
えええ(おおお(かかか)ききき) とできれば良いのですが
- 810 :デフォルトの名無しさん:2016/08/23(火) 17:00:06.50 ID:GmZX4o5v.net
- >>809
^[^(]*\([^()]*\([^()]*\)[^()]*\)
- 811 :デフォルトの名無しさん:2016/08/23(火) 21:09:09.20 ID:XDK3PVFI.net
- >>810
ありがとうございます。
度々申し訳ありませんが
あああ(あああ(いいい)ううう)えええ(おおお(かかか)ききき)くくく
このようなケースでも1個目のカッコ内カッコのあるカッコだけを検索して
あああえええ(おおお(かかか)ききき)くくく とできればおそらくこれで完璧だと思われます。
- 812 :デフォルトの名無しさん:2016/08/24(水) 00:00:08.98 ID:LDyc20HB.net
- (?<x>\(([^()]++|\g<x>)*\))(.*)
$3
- 813 :デフォルトの名無しさん:2016/08/24(水) 07:10:08.38 ID:6D91+vLT.net
- >>812
どうもありがとうございました。完璧です。
御回答いただいた皆様に感謝致します。
- 814 :デフォルトの名無しさん:2016/08/24(水) 13:10:57.10 ID:Rn6iYoWl.net
- >812
これすごいな。入れ子になっているのか
こういうの書ける人尊敬するわ
- 815 :デフォルトの名無しさん:2016/08/24(水) 13:13:45.30 ID:HM4zCXGG.net
- d
- 816 :デフォルトの名無しさん:2016/08/24(水) 18:09:17.02 ID:mGpqCU5h.net
- >>812
なんか分からんが凄いな
- 817 :デフォルトの名無しさん:2016/08/24(水) 18:17:40.95 ID:JVXWM8hM.net
- ほんとに
- 818 :デフォルトの名無しさん:2016/08/25(木) 01:44:01.50 ID:47oHd6Or.net
- >>812
わかろうとする気にならないほどだな
- 819 :800:2016/08/25(木) 08:09:27.32 ID:RUhmm4s5.net
- >>812
あ、でもこれって、
あああ(いいい)ううう(えええ(おおお)かかか)ききき(くくく)けけけ
のように、最初に出てくる括弧が「カッコ内カッコのあるカッコ」
ではない場合に
あああううう(えええ(おおお)かかか)ききき(くくく)けけけ
となってしまう気が…
この場合は
あああ(いいい)うううききき(くくく)けけけ
となってほしいというのが>>805さんの要望だと僕には読めたの
ですが、違うのかな
いずれにしてもすごい正規表現だね。すごい
- 820 :800:2016/08/25(木) 09:27:55.87 ID:RUhmm4s5.net
- >>808さんのは、単に検索すると「すべてのカッコ内カッコが検索」されるけれど、
\([^()]*\([^()]*\)[^()]*\)(.*)$
と書き換えて、置換後を$1にするってのはどう?
これなら、最初に出てくる括弧の中に括弧がない場合でも
上手くいくと思いますが、勘違いしていたらごめんなさい
- 821 :800:2016/08/25(木) 09:59:14.17 ID:RUhmm4s5.net
- 連投すみません。楽しくなっちゃって
>>812さんのは、括弧が3重以上でも上手くいくというのがすごいところ
ですね。
なので、最初に出てくるカッコが「カッコ内カッコのあるカッコ」
ではない場合(=1重カッコ)にヒットしないように書き換えて、
\([^()]+(?<x>\(([^()]++|\g<x>)*\))[^()]+\)(.*)
$3
これでどうだ!
- 822 :デフォルトの名無しさん:2016/08/25(木) 12:01:47.61 ID:v6sPu6lS.net
- そもそも <x> と言うのは何ですか?
- 823 :デフォルトの名無しさん:2016/08/25(木) 12:17:56.51 ID:mC+7hpz+.net
- 名前
- 824 :sage:2016/08/25(木) 13:10:27.44 ID:AMWIH4jj.net
- “田中哲スペシャル”でぐぐれ
- 825 :デフォルトの名無しさん:2016/08/25(木) 13:14:05.03 ID:LnEFg7Mi.net
- なんだ
- 826 :デフォルトの名無しさん:2016/08/25(木) 13:47:22.01 ID:RUhmm4s5.net
- (AA(BB(CC))DD)
のような多重カッコを「x」という名前で定義しておいて、
「(」と「)」の間に入っているものは
・「(」と「)」以外の文字の並び
もしくは
・x(=多重カッコ)
と再帰的に表現しているってことですよね
- 827 :デフォルトの名無しさん:2016/08/25(木) 14:28:32.37 ID:56YmsHfW.net
- >>824
名前から釣りだと思いつつggったらめっちゃ為になった
- 828 :デフォルトの名無しさん:2016/09/09(金) 15:51:38.37 ID:wCNlt+Gc.net
- ●Regular Expressionの使用環境
Javascript,PHP,Perl,Python
●検索か置換か?
検索
●聞きたいこと
この正規表現は何にマッチするのか
●正規表現
([^*]*)
- 829 :デフォルトの名無しさん:2016/09/09(金) 16:06:05.58 ID:Ttxk6y+B.net
- >>828
「アスタリスク以外が0個以上連続」じゃないの
- 830 :デフォルトの名無しさん:2016/09/09(金) 16:14:03.28 ID:Wsi0UfEI.net
- そうなのか
- 831 :デフォルトの名無しさん:2016/09/09(金) 16:15:36.16 ID:Wsi0UfEI.net
- なるほど
- 832 :デフォルトの名無しさん:2016/09/12(月) 14:39:32.69 ID:EFchVXk6.net
- 学校の宿題は自分でやれよw
- 833 :デフォルトの名無しさん:2016/09/25(日) 08:47:14.21 ID:UOma1c6b.net
- よろしくお願いします。
●Regular Expressionの使用環境
vs2015 VB.net
●検索か置換か?
検索
●説明
nameを取り出したい
nameブロックはregと;に必ず囲まれている。
Dim ptn = New Regex("reg\s+(.*);")
これでネームブロックは取り出せる。2回に分ければnameを取り出すことは可能だが1回の正規表現で
取り出すことは可能だろうか?
いろいろやってみたがうまくいかない。
●対象データ
reg [7:0] name1, name2, [16:0] name3;
●希望する結果
name1
name2
name3
- 834 :デフォルトの名無しさん:2016/09/25(日) 08:52:20.11 ID:UOma1c6b.net
- 対象データ追加です
●対象データ
reg [7:0] name1;
reg [7:0] name1, name2;
reg [7:0] name1, name2, [16:0] name3;
●希望する結果
name1
name1
name2
name1
name2
name3
- 835 :デフォルトの名無しさん:2016/09/25(日) 09:18:17.73 ID:DeKyBBx0.net
- んm
- 836 :デフォルトの名無しさん:2016/09/25(日) 09:31:36.02 ID:hrPU7kVw.net
- 複数列の1行を、1列の複数行に変換してから、処理すれば簡単
reg [7:0] name1, name2, [16:0] name3;
reg
[7:0]
name1,
name2,
[16:0]
name3;
- 837 :デフォルトの名無しさん:2016/09/25(日) 10:37:30.22 ID:UOma1c6b.net
- 正規表現でどうぞ
- 838 :デフォルトの名無しさん:2016/09/25(日) 11:14:40.83 ID:dhuBOAuX.net
- ほい
- 839 :デフォルトの名無しさん:2016/09/25(日) 11:16:44.34 ID:dhuBOAuX.net
- さ
- 840 :デフォルトの名無しさん:2016/09/25(日) 11:32:22.86 ID:UOma1c6b.net
- ほい。わかった。
できんのか思ってたが、なんか1回の記述でできそうやな。まあお前らには無理や
と思うが、俺がもうちょっと考えたらできるわ。
- 841 :デフォルトの名無しさん:2016/09/28(水) 21:48:53.42 ID:cGXPnVhl.net
- Dim ptn = New Regex(
" (?<=^reg\s+.*) " & vbCrLf &
" ( " & vbCrLf &
" \w+ " & vbCrLf &
" (?= " & vbCrLf &
" ,\s+ " & vbCrLf &
" | ; " & vbCrLf &
" ) " & vbCrLf &
" ) " & vbCrLf &
" (?=.*;$) " & vbCrLf,
RegexOptions.IgnorePatternWhitespace)
Dim inputs As String() = {
"reg [7:0] name1;",
"reg [7:0] name1, name2;",
"reg [7:0] name1, name2, [16:0] name3;"
}
For Each input As String In inputs
Console.WriteLine("input=" & input)
Dim match = ptn.Match(input)
While match.Success
Console.WriteLine("match=" & match.Captures(0).Value)
match = match.NextMatch
End While
Next
- 842 :デフォルトの名無しさん:2016/09/29(木) 01:57:46.08 ID:Gm/yyr2U.net
- サイトがちこっと模様替えしたね
https://regex101.com/
- 843 :デフォルトの名無しさん:2016/10/22(土) 12:15:35.80 ID:AdTl/Wc+.net
- JavaScriptでreplaceをする為に
/(パターン1)(パターン2)|(パターン3)(パターン4)/
こういうパターンを書いた場合、OR記号 | で連結しているので、キャプチャ結果が
$1, $2
になると期待したのですが、そうならないのですか?
実際にやってみると
$1, $2 と $3, $4
に入るようなのです。
- 844 :デフォルトの名無しさん:2016/10/22(土) 12:44:39.82 ID:TjQcy2Bo.net
- それをやりたいならこうじゃ
/(パターン1|パターン2)(パターン3|パターン4)/
- 845 :デフォルトの名無しさん:2016/10/22(土) 13:10:27.91 ID:AdTl/Wc+.net
- >>844
なるほど。
/(パターン1|パターン3)(パターン2|パターン4)/
ですね。
でもそれだと
期待している条件は
(パターン1)(パターン2)か
(パターン3)(パターン4)なのに、
それ以外の組み合わせ
(パターン1)(パターン4)
(パターン3)(パターン2)
の場合にもマッチしてしまうと思うのですが。
- 846 :デフォルトの名無しさん:2016/10/22(土) 20:53:49.07 ID:aAqIiVw5.net
- 括弧の数だけ後方参照は返るのだから>>843は当然の結果だと思うが
具体的に返って欲しい結果は何?
全てのパターンを書き出してみ、>>843の意図と見る側の解釈が一致しないと話が始まらない
- 847 :デフォルトの名無しさん:2016/10/22(土) 21:50:09.68 ID:OR93Coso.net
- 多分
/((?:パターン1)(?:パターン2))|((?:パターン3)(?:パターン4))/
ってことかな?
- 848 :デフォルトの名無しさん:2016/10/22(土) 22:17:35.20 ID:twuqKzoy.net
- u
- 849 :デフォルトの名無しさん:2016/12/20(火) 21:15:18.57 ID:P0MVHdnM.net
- 正規表現って言葉がかたすぎる
もっとみんなが興味をもつ言い方に変えないの?
- 850 :デフォルトの名無しさん:2016/12/20(火) 21:49:53.51 ID:Ry/2H8uD.net
- 興味津々だよ
- 851 :デフォルトの名無しさん:2016/12/21(水) 12:42:59.30 ID:kCrlwcjM.net
- >>849
固いというより意味が通じ難いと思う
- 852 :デフォルトの名無しさん:2016/12/21(水) 13:02:28.50 ID:AIOqBHAK.net
- >>849
理系にネーミングセンスを求めてはならない
その他と区別できるという条件さえ満たす名であればなんでもいい人種だから
名称自体を正規表現で表さなかったことに感謝している
- 853 :デフォルトの名無しさん:2016/12/21(水) 13:40:38.43 ID:kCrlwcjM.net
- 正規表現って訳さいしょに使ったの石田晴久だっけ
- 854 :デフォルトの名無しさん:2016/12/21(水) 14:16:05.47 ID:AabNbAoI.net
- これ以上ないくらい直訳なんだが
- 855 :デフォルトの名無しさん:2016/12/21(水) 20:30:42.04 ID:2CwQi8oD.net
- せいきがかたくてきょうみしんしん
なるほど
- 856 :デフォルトの名無しさん:2016/12/21(水) 21:16:28.47 ID:8i27l//u.net
- d
- 857 :デフォルトの名無しさん:2016/12/21(水) 21:17:12.71 ID:e5558qWf.net
- なんちゃって照合
自在照合
- 858 :デフォルトの名無しさん:2016/12/21(水) 21:39:55.58 ID:cAK1T9+M.net
- 置換とか挿入とかが付いてまわるから、
この組み合わせどーにかできなかったのかよ
とはよく思うが他の言い回しも思いつかない
会話してるだけでいつかセクハラでほんとに訴えられる
- 859 :デフォルトの名無しさん:2016/12/21(水) 21:50:37.70 ID:nmy+aY6o.net
- 数学用語でregularと言ったら、正則と訳することが多いけどね
- 860 :デフォルトの名無しさん:2016/12/21(水) 22:14:58.43 ID:l+YTvMLn.net
- うん
- 861 :デフォルトの名無しさん:2016/12/21(水) 22:46:11.63 ID:AxC8I5w6.net
- 正規表現、字で見るとなんともおもわないが
音で聞くと、・・・・
正規表現のこと知らない女性に訴えられるね
- 862 :デフォルトの名無しさん:2016/12/22(木) 20:44:35.19 ID:TsoHImGD.net
- 正規雇用の正規だよと言えば理解した気になってもらえる。
- 863 :デフォルトの名無しさん:2016/12/22(木) 20:52:11.82 ID:mxTJlKmu.net
- 非正規の彼女だったら、そんなこと口が裂けたって言えないな
- 864 :デフォルトの名無しさん:2016/12/24(土) 16:39:44.11 ID:0uYWbX0H.net
- >>853
呼び捨てすんなよ
先生と呼べよ
- 865 :デフォルトの名無しさん:2016/12/24(土) 16:42:23.96 ID:8EM69YXY.net
- 石田のK&R翻訳書は糞で有名
- 866 :デフォルトの名無しさん:2016/12/25(日) 11:45:12.71 ID:QywZQROL.net
- ユーザー登録制のサイトで、勝手な名前を登録出来ると例えば
Admin、管理者、マネージャ、、、
など、いかにも一般ユーザーではないような名前を付ける人も出てきます。
そういう名前を登録出来ないようにしたいのですが、自分で正規表現でそういうのを排除しようと
思ったのですが、そういう目的に使えるような便利なライブラリなどありませんか?
要するに排除する単語の選定だけの問題なのですが、既に誰か作っていないかなあと思って。
アダルト系、人種差別系の名前も排除したいので、考えれば結構範囲が広いんです。
- 867 :デフォルトの名無しさん:2016/12/27(火) 14:02:43.13 ID:9ynixZS2.net
- >>866
どんなものにも得手不得手ってものがあるわけで
なぜその処理をするのに正規表現が選択肢になるのか意味不明
- 868 :デフォルトの名無しさん:2016/12/27(火) 14:35:26.36 ID:xrzl8aBc.net
- まあブラックリスト、ホワイトリストには大体正規表現が書けるようにはなってる
そういうリストを自分で作るんじゃなくて欲しいんなら探すしかない
- 869 :デフォルトの名無しさん:2016/12/27(火) 16:02:11.15 ID:hI/o5Uh3.net
- >>867
パターンマッチングの典型例だろ。
意味不明と言う意味が不明
- 870 :デフォルトの名無しさん:2016/12/27(火) 16:14:01.50 ID:Vdczj+/E.net
- u
- 871 :デフォルトの名無しさん:2016/12/27(火) 18:47:29.33 ID:4mpySA7a.net
- 出来の良い辞書があれば済みそうな話に見えるけど、そうでもないのか
- 872 :デフォルトの名無しさん:2016/12/27(火) 19:28:33.83 ID:OB8e5g5W.net
- 日本語を許可してる時点で無駄じゃね
チンコを意味する言葉だけで辞書1ページ埋まるくらいあるし
全部NGに出来たとしても記号混ぜられたらそれまでだろ
報告されたら対処するくらいでいいと思うが
- 873 :デフォルトの名無しさん:2016/12/28(水) 06:19:32.79 ID:+BGeVry5.net
- のどちんこ
- 874 :デフォルトの名無しさん:2016/12/28(水) 12:52:22.48 ID:kFL7wfb2.net
- ぱちんかす
- 875 :デフォルトの名無しさん:2016/12/28(水) 13:09:32.83 ID:wvS2FZtE.net
- 既存のブラックリストがあれば欲しいという話ならまだ分からなくもないけど
ブラックリストでパターンマッチングさせて弾く処理なんてどんな言語だろうが初歩中の初歩の処理だろ
なぜ正規表現のスレで>>866を質問しようと思ったのだろう
- 876 :デフォルトの名無しさん:2016/12/30(金) 19:56:57.61 ID:2Pbjmvkx.net
- ●Regular Expressionの使用環境
PHP
●検索か置換か?
検索
●説明
preg_splitを使ってカンマ"," での文字列分割
その際カンマの前後の半角スペースを無視したい
●対象データ
値1, 値2, 値3,値4 , 値5
●希望する結果
値1
値2
値3
値4
値5
よろしくお願いします
- 877 :デフォルトの名無しさん:2016/12/30(金) 20:52:56.95 ID:WcpJxD6e.net
- エスケープだの引用符だの言い出さないなら、 / *, */ ←顔文字みたい
- 878 :デフォルトの名無しさん:2016/12/30(金) 21:10:19.67 ID:2Pbjmvkx.net
- >>877
ありがとうございます
- 879 :デフォルトの名無しさん:2016/12/30(金) 21:15:01.34 ID:jGOjX1NN.net
- ^ω^)
- 880 :デフォルトの名無しさん:2016/12/30(金) 21:48:44.19 ID:/ZkHAa1O.net
- bregonig.dll Ver.4.00
http://k-takata.o.oo7.jp/mysoft/bregonig.html
- 881 :デフォルトの名無しさん:2016/12/31(土) 05:55:37.66 ID:CmyPhKPF.net
- 文字化けを発見しやすくするためにもPOSIX正規表現にasciiクラスを正式採用してもらいたい
- 882 :デフォルトの名無しさん:2017/01/06(金) 20:46:01.53 ID:v+2zhO4e.net
- よろしくお願いします。
●Regular Expressionの使用環境
mi(ミミカキエディット www.mimikaki.net/)
●検索か置換か?
置換
●説明
英単語のリストがあるのですが、各単語の最初の文字は残して、
残りを全て全角スペースに置換したい。
●対象データ
ABCA
BCAA
CABA
●希望する結果
A□□□
B□□□
C□□□
- 883 :デフォルトの名無しさん:2017/01/06(金) 23:01:40.92 ID:rJ39SB5o.net
- >>882
(?<=.).
そのエディタ知らないけど肯定後読みでできないかな
- 884 :デフォルトの名無しさん:2017/01/07(土) 00:03:11.91 ID:FuDWh40R.net
- http://support.mimikaki.net/mi/help/regexp.htm ヘルプ見たら後読みはなさそうだ
・単に行頭だけ残す
(?!^).→全角空白
・連続したアルファベットの先頭だけ残す
(?!\b[A-Za-z])[A-Za-z]→全角空白
- 885 :デフォルトの名無しさん:2017/01/07(土) 01:32:30.47 ID:Rh9gPNyY.net
- \B.→全角空白
- 886 :デフォルトの名無しさん:2017/01/07(土) 02:13:58.12 ID:IrIkzzkt.net
- 1.矩形選択で全行の1文字目切り取りって待避
2.[A-Z]を全角空白に置換
3. 1.で切り取ったものを矩形ペースト
でいけたけど全角空白の表示がわからんのねこれ
- 887 :デフォルトの名無しさん:2017/01/07(土) 07:55:08.29 ID:9O+kjQ8i.net
- そもそも正規表現で、n個のAに置換するとか、あらかじめ数が分からないのに、出来るのか?
AA, AAA に置換するのは出来るけど
普通に、ファイルを読んで、1文字ずつ変換した方が良さそう
- 888 :デフォルトの名無しさん:2017/01/07(土) 08:48:09.01 ID:2RoNSSAN.net
- >>887
>>883-885 のパターン(一文字にマッチ)で s///g の g に該当する指定(全て置換、等)をすればいいのでは?
つか \B いいな、vimにもホスィ、\<\@! とか書けるけど
- 889 :デフォルトの名無しさん:2017/01/07(土) 15:30:40.04 ID:B2JCMQMI.net
- >>887
n個をn個に置換するという表現は出来ないからそうでない表現を考える(勿論プログラミングではコールバックでどうとでもなるけども)
今回は先頭の1文字に続くn文字をn文字で置換する, から非単語境界に続く全ての1文字を1文字で置換する, に置き換えて考えればよい
- 890 :デフォルトの名無しさん:2017/01/10(火) 02:26:03.25 ID:lqVFUn0Z.net
- javascriptのソースで遭遇したんですが、
[ -~]
ってどういう正規表現なんですか?英文字とマッチしてるようなんですが・・・
- 891 :デフォルトの名無しさん:2017/01/10(火) 02:38:26.37 ID:fP39RQYT.net
- >>890
ASCIIコードで書けば [\x20-\x7e] で印字可能文字の全体
\x00-\x1f, \x7fは全て制御文字
- 892 :デフォルトの名無しさん:2017/01/10(火) 03:07:46.12 ID:lqVFUn0Z.net
- >>891
なるほど!そういう意味だったんですね…何かの特殊文字化と思って???状態でした。
ありがとうございます
- 893 :デフォルトの名無しさん:2017/01/16(月) 19:51:15.52 ID:GvJtwLGJ.net
- >>883-889
ありがとうございます。
¥B.→全角空白でいけました!
- 894 :デフォルトの名無しさん:2017/01/17(火) 01:06:22.60 ID:TKHULUbB.net
- gawkは、/[a-z]/で英大文字もマッチする
小文字だけのチェックなどしないから長い間気がつかなかった
ぐぐったら有名なバグだった
- 895 :デフォルトの名無しさん:2017/01/17(火) 14:11:55.18 ID:QWXHES32.net
- >>894
マジ?
普通に
$ echo "HELLO¥nhello" | gawk '/[a-z]/'
hello
になったんだが、バージョン違い?(4.1.1です)
- 896 :デフォルトの名無しさん:2017/01/18(水) 00:05:35.56 ID:b8uVoaAX.net
- >>895
ごめん、バージョン3. です
4. は直っているらしいです、まだ使っていませんが
- 897 :デフォルトの名無しさん:2017/01/18(水) 12:45:38.22 ID:Igfwm5uK.net
- ●Regular Expressionの使用環境
Java
●検索か置換か?
検索
●説明
最短の指定文字列の間の文字を複数条件で検索したい
a(.*?)b
c(.*?)d
e(.*?)f
これを1つにしたいんだが、
a(.*?)b|c(.*?)d|e(.*?)f 一致せず
(a|c|e)(.*?)(b|d|f) 一致せず
●対象データ
aあいうえおb
cかきくけこd
eさしすせそf
●希望する結果
あいうえお
かきくけこ
さしすせそ
おねがいします
- 898 :デフォルトの名無しさん:2017/01/18(水) 13:02:42.00 ID:Igfwm5uK.net
- 補足
(a|c|e)(.*?)(b|d|f) 一致せず
これをやったのは最初にaにマッチした時は必ず次に最初にマッチするのはbだからです。cにマッチしたら次にマッチするのはd、eにマッチしたら次にマッチするのはf
対ではない他の文字列が先に出てくることはありません
- 899 :デフォルトの名無しさん:2017/01/18(水) 13:08:13.45 ID:2zcCu4Ky.net
- [ace](.*?)[bdf]
- 900 :デフォルトの名無しさん:2017/01/18(水) 13:15:05.93 ID:Igfwm5uK.net
- >>899
ありがとうございます
説明不足すいませんabcdefのやつは実際は1文字じゃないんです
- 901 :デフォルトの名無しさん:2017/01/18(水) 13:17:28.66 ID:lqRpqFwx.net
- >>898
たとえば、aあいうえおc にはマッチしてほしくないってこと?
- 902 :デフォルトの名無しさん:2017/01/18(水) 13:20:33.86 ID:aCeYQIzy.net
- (?<=a).*?(?=b)|(?<=c).*?(?=d)|(?<=e).*?(?=f)
- 903 :デフォルトの名無しさん:2017/01/18(水) 13:20:35.48 ID:lqRpqFwx.net
- 違った。ええとつまり、aで始まればbで終わり、cで始まればdで終わる、ってこと?
- 904 :デフォルトの名無しさん:2017/01/18(水) 13:26:42.18 ID:Igfwm5uK.net
- >>903
そうです!
- 905 :デフォルトの名無しさん:2017/01/18(水) 13:30:40.10 ID:U5PxsZIV.net
- (a(.*?)b)|(c(.*?)d)|(e(.*?)f)
だと駄目?
- 906 :デフォルトの名無しさん:2017/01/18(水) 13:32:34.45 ID:aCeYQIzy.net
- >>905
キャプチャの番号がズレるでしょうよ
- 907 :デフォルトの名無しさん:2017/01/18(水) 13:43:13.11 ID:2zcCu4Ky.net
- ruby 2.2.1でa(.*?)b|c(.*?)d|e(.*?)fでマッチするけど?
- 908 :デフォルトの名無しさん:2017/01/18(水) 13:46:16.22 ID:aCeYQIzy.net
- 並列にキャプチャするとキャプチャ結果引っ張ってくるの手間じゃない?
- 909 :デフォルトの名無しさん:2017/01/18(水) 15:07:05.66 ID:Igfwm5uK.net
- >>902
試してみました
java.util.regex.PatternSyntaxException: Look-behind pattern matches must have a bounded maximum length near index 95:
と返ってきてしまいました。どういうこと?
- 910 :デフォルトの名無しさん:2017/01/18(水) 15:31:10.11 ID:1DV8OvrA.net
- aやらbやらに可変長パターン用いてるんでないの?
実際に使用しているパターンを晒さないと前に進まないと思うよ
- 911 :デフォルトの名無しさん:2017/01/18(水) 16:15:59.60 ID:Igfwm5uK.net
- a <div class=\"number\">
b </div><div class=\"name\">
c <div class=\"date\">.*?\\)
d \\.
e <div class=\"message\">
f </div></div>
です
可変長のやつを中で使ってはダメなのか!
- 912 :デフォルトの名無しさん:2017/01/18(水) 17:17:59.83 ID:ZI2HwePN.net
- >>911
cは括弧の対応が取れてないと思うんだがコピーミス?
可変長がダメなのは>>902の奴で、>>897の最初の奴で良さそうに思えるんだが
ただ、.*?だともしもデータの対応が取れてなかったらごそっとキャプチャしちゃう恐れがあるし、その時はダンマリか猛烈に遅くなる可能性もある
- 913 :デフォルトの名無しさん:2017/01/18(水) 17:43:31.04 ID:HRpr9Zj8.net
- 可変長戻り読みはコストが大きいから無理(Javaは可能だが上限あり)
面倒だけどキャプチャ括弧で頑張るしかない
で, そのパターンから見るにHTMLなんだろうけど, それ正規表現じゃなきゃいけませんかってとりあえず聞いておく
HTMLパーサライブラリなんて世にいくらでもありますよ, と
- 914 :デフォルトの名無しさん:2017/01/18(水) 18:13:58.95 ID:clhGKXZp.net
- >HTMLパーサライブラリなんて世にいくらでもあります
まずはそこだよなw
- 915 :デフォルトの名無しさん:2017/01/18(水) 21:24:14.27 ID:Igfwm5uK.net
- >>912
コピーミスではないんですが間違ってましたか!
とりあえずエスケープもちゃんととって答えてくれたやり方やってみましたが正しく取れませんでした
自分の環境のせいかもしれません
キャプチャ括弧というのでやってみようと思います
何度も限定的な同じことを繰り返すから正規表現のほうが軽いかなと思ったんですけどhtmlパーサーってやつの方がいいみたいですね。それも検討してみます
どうもありがとうございました!
- 916 :デフォルトの名無しさん:2017/01/28(土) 18:23:15.25 ID:DLwo47M5.net
- 秀丸で
2009年1月
2011年3月
2011年11月
2013年12月
のような行がたくさんあるのですが
2009年 1月
2011年 3月
2011年11月
2013年12月
のようにしたいのですが
年.月
で1-9月が検索できることは分かったのですが
置換先にどう書いたらよいのでしょうか
- 917 :デフォルトの名無しさん:2017/01/28(土) 18:30:20.93 ID:XnHJw37P.net
- 年(\d)月
年 $1月
でどうかな?
- 918 :デフォルトの名無しさん:2017/01/28(土) 18:41:22.57 ID:DLwo47M5.net
- >>917
検索(S): 年(\d)月
置換(E): 年 $1月
としたら結果は
2009年 $1月
2011年 $1月
2011年11月
2013年12月
となってしまいました。正規表現(R)のチェックボックスは入れています。
検索で出てきたサルでも分かる正規表現入門とMIFESサンプル集のページを見ましたが
置換用メタ文字というのが分からなくて困っているんですね私は、たぶん。
- 919 :デフォルトの名無しさん:2017/01/28(土) 19:16:27.79 ID:yUzAOYuJ.net
- 秀丸持ってないから分からんけど\1とか
- 920 :デフォルトの名無しさん:2017/01/28(土) 20:04:13.36 ID:DLwo47M5.net
- Windows PowerShellだとsedあるのかなとか思いましたが、無かったorz
秀丸スレで聞いてみます
- 921 :デフォルトの名無しさん:2017/01/28(土) 20:34:54.41 ID:DLwo47M5.net
- >>917
>>919
レスありがとうございます
秀丸スレで教えてもらうことができました
検索(S): 年([0-9])月
置換(E): 年 \1月
- 922 :デフォルトの名無しさん:2017/01/29(日) 00:11:31.24 ID:ahYjitv7.net
- \1 は検索文字内で使うものであって、置換の方は $1 を使うのが自然なんだけどな
秀丸の実装が腐ってるのか
- 923 :デフォルトの名無しさん:2017/01/29(日) 00:14:49.25 ID:pBh4CFEL.net
- うっm
- 924 :デフォルトの名無しさん:2017/01/29(日) 01:17:12.68 ID:q/JB8S+S.net
- >>922
同様のsedという例があるからなぁ・・・・
そもPOSIX標準で置換に関して規格ってあるんだっけ?
まぁPCREでも.NETの正規表現でも使った方がいいんじゃねとは思う
秀丸自体最早古臭いけど
- 925 :デフォルトの名無しさん:2017/01/29(日) 04:19:46.44 ID:9/7795aT.net
- 秀丸はbregonig.dllを使えるので正規表現の機能的には十分だし
他のエディタではあんまりない機能
「正規表現でのインクリメンタルサーチ」
ができるので重宝してる
- 926 :デフォルトの名無しさん:2017/01/29(日) 06:22:34.74 ID:ahYjitv7.net
- Perl では $1 を推奨してるだけで規格自体は無いかなぁ
でも bregonig.dll で $1 が使えるのに、置換に使えないっていうのはおかしい
- 927 :デフォルトの名無しさん:2017/01/29(日) 07:31:12.39 ID:q/JB8S+S.net
- >>926
デフォルトではbregonigじゃなくてHmJreなんだろ
何も不思議じゃない
- 928 :デフォルトの名無しさん:2017/01/29(日) 11:54:45.57 ID:Gjda/nA+.net
- Windowsのエディタっていま何が主流なんですか?
- 929 :デフォルトの名無しさん:2017/01/29(日) 12:00:04.87 ID:CRRLjGuc.net
- すごいもんeditしようとしてるな
- 930 :デフォルトの名無しさん:2017/01/29(日) 12:13:54.05 ID:Gjda/nA+.net
- えっ!?(なんでワカタの)
- 931 :デフォルトの名無しさん:2017/02/04(土) 15:35:39.90 ID:e9aNESBj.net
- >>928
禿丸
- 932 :デフォルトの名無しさん:2017/02/17(金) 00:43:55.47 ID:aR5hX4hL.net
- $1とか\1とか効いたり効かんかったり、イライラするのは何故?←訊くな
- 933 :デフォルトの名無しさん:2017/02/20(月) 16:30:36.89 ID:D++FG3XO.net
- ●Regular Expressionの使用環境
VB.NET(回答はサクラエディタでも可)
●検索か置換か?
置換
●説明
巨大な配列に代入を行っているプログラムソースの途中に1行追加して
それ以降の要素番号を1ずつずらしたいんですが、
ずらす部分を正規表現置換でやることは可能でしょうか?
●対象データ
hogehoge(0) = "AAA"
hogehoge(1) = "BBB"
hogehoge(2) = "CCC"
hogehoge(3) = "DDD"
hogehoge(4) = "EEE"
●希望する結果
hogehoge(0) = "AAA"
hogehoge(1) = "BBB"
hogehoge(2) = "XXX" ←手入力でこの行を新たに追加
hogehoge(3) = "CCC" ←正規表現置換でhogehogeの要素番号を+1
hogehoge(4) = "DDD" ←正規表現置換でhogehogeの要素番号を+1
hogehoge(5) = "EEE" ←正規表現置換でhogehogeの要素番号を+1
※ちなみに実際にはhogehogeの要素番号は数千ぐらいまであって
「=」の右側の式もこんなに単純ではないです。
- 934 :デフォルトの名無しさん:2017/02/20(月) 16:41:33.09 ID:D++FG3XO.net
- ↑あまり過去ログ読んでなくて、もし既出だったら教えて下さい...
- 935 :デフォルトの名無しさん:2017/02/20(月) 16:54:47.42 ID:Hh/GX1rY.net
- 正規表現で足し算出来るのかな?
でもね、こう言う場合は
Int n=0
hogehoge(n)="AAA";n=n+1;
hogehoge(n)="BBB";n=n+1;
とかにしておくと、いいよ。
- 936 :919:2017/02/20(月) 17:11:19.64 ID:D++FG3XO.net
- >>935
すみません、例を単純化しすぎました。
実際には
hogehoge(0) = "AAA"
hogehoge(0) = hogehoge(0) & "XYZ"
みたいに同じ要素が複数回出現するので「hogehoge」にヒットさせて
直後の()内の数字を+1するしかないかなと思っています。
- 937 :デフォルトの名無しさん:2017/02/20(月) 17:21:36.65 ID:aGrUDuyU.net
- 例えば配列要素2を追加する場合
hogehoge(1)=hogehoge(1)+"AAA"
→ hogehoge(1)=hogehoge(1)+"AAA" //そのまま
hogehoge(3)=hogehoge(1)+"AAA"
→ hogehoge(4)=hogehoge(1)+"AAA" //左辺のみ+1する
hogehoge(3)=hogehoge(3)+"AAA"
→ hogehoge(4)=hogehoge(4)+"AAA" //左辺右辺それぞれ+1する
ってことか?
VB.NETやサクラエディタのマクロで組めば可能だろうが、
VB.NETやサクラエディタのスレで聞け
- 938 :922:2017/02/20(月) 17:27:47.63 ID:D++FG3XO.net
- >>937
1つの行内ではその要素番号しか出てこないです。
あと要素番号の戻り、例えば
hogehoge(3) = "DDD"
hogehoge(2) = hogehoge(2) & "EEE"
みたいにある要素の処理の次にそれより若い番号の要素の処理が来ることもありません。
でも確かに正規表現の範疇ではなかったですね。
すみません。去ります。
- 939 :デフォルトの名無しさん:2017/02/20(月) 17:28:24.78 ID:Hh/GX1rY.net
- >>936
その足し算処理の
vb.netプログラム書けばいいんじゃないか?
数千行をファイルに書いておいて
配列に読み込んで
正規表現で(数字)見つけて1足す
どうかな?
3分あれば出来る。
- 940 :デフォルトの名無しさん:2017/02/21(火) 00:06:28.28 ID:DnJwQ0KY.net
- 実際に要素番号を+1する必要あるの?
↓こういう置換でいいんじゃね?
hogehoge(2+1) = "CCC"
hogehoge(3+1) = "DDD"
hogehoge(4+1) = "EEE"
- 941 :デフォルトの名無しさん:2017/02/21(火) 03:30:05.49 ID:BY3mJNCy.net
- 配列に数千行も代入文が続くなんて
どう見てもステップ数稼ぎででかくしたとしか思えん
ステップ数あたりでお金を払ってだらそういうこともされるだろうよ
- 942 :デフォルトの名無しさん:2017/02/21(火) 05:37:02.05 ID:Mc+Bkh/z.net
- 全然スレチなのであまり詳しくは書かないけど
Excel使ってそういうコード書くのは何回かやったことがある
数値をインクリメンタルさせる部分はExcelの機能に頼って
セルの値を文字列連結させてコードに仕立て上げる
- 943 :デフォルトの名無しさん:2017/02/21(火) 09:27:34.14 ID:bUsqhz7M.net
- >手入力でこの行を新たに追加
ってのが、エディタ内でやるのか、コマンドラインで挿入コマンドを打つのか、で対処の仕方が変わると思うけど
追加する行をどう選定してるのかな
- 944 :デフォルトの名無しさん:2017/02/23(木) 14:39:51.26 ID:5Z+LEgjB.net
- 5桁の数字で44032から55215だけにマッチさせる表現はありますか?
自分で作ったら42〜や40〜にもマッチしてしまう気がします
どうぞご教示お願いします
- 945 :デフォルトの名無しさん:2017/02/23(木) 15:06:04.11 ID:9XUMgpP/.net
- >>944
正規表現でやることじゃないが
4(4(0(3[2-9]|[4-9][0-9])|[1-9][0-9][0-9])|[5-9][0-9][0-9][0-9])|5([0-4][0-9][0-9][0-9]|5([0-1][0-9][0-9]|2(0[0-9]|1[0-5])))
- 946 :デフォルトの名無しさん:2017/02/23(木) 15:28:46.85 ID:5Z+LEgjB.net
- >>945
うわー、早速ありがとうございます
まだ読みこなせていませんが[0-9]を使っていい範囲と、使ってはいけない範囲を分解してORで書く感じですね
これが使えないのは意地悪ですよね
[44032-55215]
- 947 :デフォルトの名無しさん:2017/02/23(木) 15:55:01.33 ID:qZcVpQDS.net
- [ab-cd]がab〜cdの範囲にならないのも意地悪か?
- 948 :デフォルトの名無しさん:2017/02/23(木) 16:13:12.11 ID:VAe27q9f.net
- そもそも正規表現でやることじゃないし意地悪とか意味不明
- 949 :デフォルトの名無しさん:2017/02/23(木) 16:14:48.14 ID:lo050pCS.net
- 何にでも得手不得手ってあるからな
プロ野球選手にサッカーやらせてヘタクソって言ってるみたいなもんだ
- 950 :デフォルトの名無しさん:2017/02/24(金) 00:50:49.36 ID:q1JDjPNt.net
- >>946
何でそれで行けるべきと思ったの?
- 951 :デフォルトの名無しさん:2017/02/24(金) 06:14:30.86 ID:pM2eDGo5.net
- >>950
横からでスレチで悪いが「行けるべき」はさすがに気持ち悪い。(反応不要です)
- 952 :デフォルトの名無しさん:2017/02/25(土) 12:34:06.37 ID:flbrvxvt.net
- >>944
俺はそういう数の範囲をマッチさせる正規表現を組み立てて返す関数をPerlで作ったわ
再起呼び出しを駆使すれば意外とシンプルなコードが出来るぞ
>>948
正規表現でのみ検索してデータを返すシステムだと正規表現でやるしかないんだわ
データを全部受け取って比較演算子でやれればいいんだけどな
- 953 :デフォルトの名無しさん:2017/02/25(土) 12:58:27.24 ID:d9mNErv5.net
- >>952
まあそういうことだけど、そんな場合ってあまり無いよね
多分質問者もそういう環境じゃないと思うな
言語系ではないだろうからエディタ、excel等だと思うけどマクロが組めないだけなんだろう
- 954 :デフォルトの名無しさん:2017/02/25(土) 15:45:30.85 ID:uYJa88pq.net
- 正規表現だけで対応すべきか、素直にプログラムを書いて対応すべきかを見極めるのが、正規表現と付き合ううえで一番大事な部分。
- 955 :デフォルトの名無しさん:2017/02/25(土) 23:44:12.95 ID:kQQR0LzA.net
- ●Regular Expressionの使用環境
phpのpreg_match_all
●検索か置換か?
検索
●説明
サイトの引越をするために外部のhtmlファイルをfile_get_contentsで取得しました。
ついでに画像のパスも変更したいと思い、imgタグはシンプルな正規表現でかけたのですが
inputタグでtypeがimage、しかも1つのinputタグのなかにsrcやonmouseoverなど、複数の画像パスがあり全てをヒットさせたいです
●対象データ
前略〜
<div class="xxxxxxx"><input type="image" name="xxxxxxxx"
onclick="doSubmit();" src="images/xxxx.jpg" value="GO" alt="GO"
onmouseover="this.src='images/yyy.gif'"
onmouseout="this.src='images/zzzzz.png'" /></div>
〜攻略
●希望する結果
hogehoge(0) = "images/xxxx.jpg"
hogehoge(1) = "images/yyy.gif"
hogehoge(2) = "images/zzzzz.png"
よろしくお願いします!
- 956 :デフォルトの名無しさん:2017/02/26(日) 05:09:07.37 ID:mfQeCKHi.net
- >>955
php知らんので確認はできないけど
(?:<input\s(?=[^>]*?type=["']image["'])|\G)[^>]*?src=["']\K([^"']+)
でどうかな?
「<input type = image」のような記述も許すのなら改造してくれ
- 957 :デフォルトの名無しさん:2017/02/26(日) 05:15:54.55 ID:mfQeCKHi.net
- あっ末尾括弧不要だね ["']+
- 958 :デフォルトの名無しさん:2017/02/26(日) 12:18:45.95 ID:2VvxLCqH.net
- >>955
単に拡張子を狙って
(images/.+)\.(png|jpg|gif)
なんてのはどうでしょう
- 959 :デフォルトの名無しさん:2017/02/26(日) 12:33:57.08 ID:DjVx44l4.net
- ディレクトリの名前はimagesとは限らないんじゃない?
preg_match_all('/(?<=[\'"])[\w\/-]+\.(?:jpe?g|gif|png)(?=[\'"])/i',$data,$match);
とかはどう?
- 960 :デフォルトの名無しさん:2017/02/26(日) 12:48:58.15 ID:mfQeCKHi.net
- そうだね
用件が、inputタグで属性typeがimageの場合とあるけど
サイト引っ越すんならそんな場合に限定するのはおかしいので
全部(他のタグ中や普通の表示文字列内や、コメント内にあったとしてもそれも)
取り出したほうがいいもんね
- 961 :941:2017/02/26(日) 14:41:53.86 ID:/FywCWxK.net
- >>956
希望したかたちでひろえました、ありがとうございます!
>>958-960
通常のimgタグは945に似た形の正規表現で処理済みでした、ありがとうございました。
復習しておきたいんですが
「正規表現 量指定子」とかだと942の\Gとか\Kでてこないんですが
なんてググればいいでしょうか?
- 962 :デフォルトの名無しさん:2017/02/26(日) 16:15:05.06 ID:340uhvEW.net
- >>953
うん、あまり無いね
初めて出くわしたときは眩暈がしたわ
- 963 :デフォルトの名無しさん:2017/02/26(日) 17:00:40.89 ID:mfQeCKHi.net
- >>961
もう見つかってるとは思うけど
正規表現入門とか解説とかいうページは読み物としてはいいかもしれないが機能を検索するには不向き
まずは機能一覧を探すようにする
例えばphpの場合は、公式マニュアルを最初に探す
「php 正規表現 マニュアル」
そうすれば、次には「エスケープシーケンス」も検索に追加するとかが分かる
http://php.net/manual/ja/regexp.reference.escape.php
他の言語の場合も
「正規表現 ruby」「正規表現 鬼車」とかでまず機能一覧のページを探せばいい
- 964 :デフォルトの名無しさん:2017/02/26(日) 17:11:28.50 ID:mfQeCKHi.net
- ruby等の場合のURLが抜けた
http://doc.okkez.net/2.0.0/view/spec/regexp
http://k-takata.o.oo7.jp/mysoft/bregonig.html
- 965 :デフォルトの名無しさん:2017/02/26(日) 18:00:18.91 ID:iMAoOT+h.net
- 最近紙の技術書とか読まなくなったな。
使いたい機能を見つけるのに時間がかかりすぎる。
正規表現検索対応の電子ブックで出してくれたら買うんだが。
- 966 :デフォルトの名無しさん:2017/02/26(日) 18:05:23.06 ID:1a5Lx6dL.net
- 正規表現は独自拡張が多過ぎるからC++で採用されたECMAScriptの正規表現を中心に後はライブラリのマニュアルとか見るしかないと思う
- 967 :デフォルトの名無しさん:2017/02/26(日) 18:23:17.94 ID:/FywCWxK.net
- >>963
エスケープシーケンスね、ありがとうございます。
- 968 :デフォルトの名無しさん:2017/02/26(日) 20:23:41.21 ID:mfQeCKHi.net
- >>967
使ってないとは思うが、独自データ属性でdata-type="image"とかがあったら誤爆するんで訂正
(以前のレスで["']+とか用件とか間違い発言もあるがさらっと流してね)
(?:<input\s(?=[^>]*?(?<=\s)type=["']image["'])|\G)[^>]*?src=["']\K[^"']+
- 969 :941:2017/02/27(月) 03:32:24.96 ID:Gb3k9mdh.net
- フォローありがとうございます。
> 独自データ属性
そんな高度なものは使っていなかったので大丈夫でしたが違いを確認します!
- 970 :デフォルトの名無しさん:2017/03/10(金) 06:33:36.26 ID:9DaoieFN.net
- 「RegEx」ってどう読むの?
- 971 :デフォルトの名無しさん:2017/03/10(金) 09:51:57.42 ID:K9fW84T9.net
- レギュラーエクスプレッション
- 972 :デフォルトの名無しさん:2017/03/10(金) 12:27:48.83 ID:7jiyOitp.net
- 正規表現
- 973 :デフォルトの名無しさん:2017/03/10(金) 17:19:49.64 ID:Qd1RBCEf.net
- レグエックス
- 974 :デフォルトの名無しさん:2017/03/10(金) 21:32:21.03 ID:nO8xf2gI.net
- Fedex のように発音するとどこかに書かれてた。
- 975 :デフォルトの名無しさん:2017/03/10(金) 21:35:15.44 ID:1tgzEo2G.net
- ネイティブの発音だと「レゲェ」って聞こえる
- 976 :デフォルトの名無しさん:2017/03/10(金) 23:03:16.24 ID:tXKdCDND.net
- >>974
オライリーの「詳説正規表現」に書かれてたね
自分は「レゲックス」なのか「レジェックス」なのか分からずにいる
- 977 :デフォルトの名無しさん:2017/03/10(金) 23:32:21.48 ID:nXK4riNi.net
- regularの発音に沿うならレゲックスっぽい
- 978 :デフォルトの名無しさん:2017/03/10(金) 23:40:40.57 ID:1IM+xFdJ.net
- 今までレグイーエックスと言っていたが、レゲックスていいな、そう呼ぶかな
て、よく考えたら脳内でしか使うことないからどうでも良いか
- 979 :デフォルトの名無しさん:2017/03/10(金) 23:43:33.53 ID:1IM+xFdJ.net
- >>977
沿ったらレギュックスに思えてきた…
- 980 :デフォルトの名無しさん:2017/03/11(土) 02:12:11.37 ID:0+qQEpf8.net
- http://ejje.weblio.jp/content/regex
リージェックスって言ってる
- 981 :デフォルトの名無しさん:2017/03/11(土) 02:17:46.28 ID:eS2MfmCX.net
- cflagsをしーえふえるえーじーえすって読んでるから多分機械読みだぞ
- 982 :デフォルトの名無しさん:2017/03/11(土) 03:41:24.62 ID:0+qQEpf8.net
- 発音記号・読み方 /ˈɹɛdʒˌɛks(英国英語)/
って書いてあんじゃん
- 983 :デフォルトの名無しさん:2017/03/11(土) 04:25:00.20 ID:eS2MfmCX.net
- /??????ks/もあるんだよなぁ
- 984 :デフォルトの名無しさん:2017/03/11(土) 06:33:15.42 ID:ksNuoGmO.net
- 素直に読めば「レジェクス」だと思うんだけど
一人もいないね・・・
- 985 :デフォルトの名無しさん:2017/03/11(土) 08:25:08.64 ID:Z8dykLLF.net
- 大文字になっているEを単語の区切りと見て素直に読むと、レグエックスかも知れん。
- 986 :デフォルトの名無しさん:2017/03/11(土) 08:39:37.23 ID:RCY883uq.net
- exit読みから派生してレジイク
- 987 :デフォルトの名無しさん:2017/03/11(土) 09:08:04.37 ID:h5T3JHpB.net
- レジクソだろ
- 988 :デフォルトの名無しさん:2017/03/11(土) 10:18:11.95 ID:8EPAG5jM.net
- レゲエが拡張された新しい音楽スタイル、レゲックス。
- 989 :デフォルトの名無しさん:2017/03/11(土) 11:04:00.74 ID:JsoExgwj.net
- >>980
そんなのアテにならん
- 990 :デフォルトの名無しさん:2017/03/11(土) 11:05:34.57 ID:JsoExgwj.net
- >>985
レグェックス
- 991 :デフォルトの名無しさん:2017/03/11(土) 16:38:47.83 ID:ksNuoGmO.net
- なんか吐いてるみたいw
- 992 :デフォルトの名無しさん:2017/03/11(土) 19:37:16.33 ID:M5Z0zeDZ.net
- 極力舌を上顎に付けないrの発音を練習しておいて
gexの部分を「ウェッ」みたいに言えるようになってから、
「正規表現とかけて赤ワインの飲みすぎと解く、その心は?」
「ェウェッ…」
ってネタをやってる
- 993 :デフォルトの名無しさん:2017/03/13(月) 12:46:35.07 ID:1nW2SDLA.net
- TeXはテフだよね。だからレゲッフだと思う
- 994 :デフォルトの名無しさん:2017/03/13(月) 13:46:51.89 ID:N3DmujAP.net
- うじぇ
- 995 :デフォルトの名無しさん:2017/03/13(月) 13:47:05.18 ID:AvyIY0iY.net
- regexはリージェックスって脳内で読んでたが少数派か
rege…という綴りをまんまローマ字読みするのはものすごく違和感がある
それなりに英語ができる人は同じ違和感を覚えるんじゃないかな
- 996 :デフォルトの名無しさん:2017/03/13(月) 13:50:40.48 ID:N3DmujAP.net
- https://ja.glosbe.com/ja/fr/RegEx
http://docs.python.jp/3/howto/regex.html
http://docs.python.jp/2/howto/regex.html
https://social.msdn.microsoft.com/Forums/ja-JP/d773b6e0-17a3-4d51-9302-e4bfcdd3607d
- 997 :デフォルトの名無しさん:2017/03/13(月) 13:54:49.96 ID:RsKsx8Gp.net
- レジェックスとか言ってる人は
regenerateを”れじぇねれーと”とかallow,denyを"あろー,でにー"とか言ってそう
いわゆる日本人読みやな
- 998 :デフォルトの名無しさん:2017/03/13(月) 14:31:12.60 ID:N3DmujAP.net
- warning
- 999 :デフォルトの名無しさん:2017/03/13(月) 14:31:47.74 ID:A9v11X3F.net
- ぬるぽ
- 1000 :デフォルトの名無しさん:2017/03/13(月) 19:07:11.42 ID:83MIjbrk.net
- >>997
では外国人読みは
- 1001 :デフォルトの名無しさん:2017/03/13(月) 19:49:58.60 ID:xj6UKIPj.net
- へじぇっ
- 1002 :デフォルトの名無しさん:2017/03/13(月) 22:19:32.27 ID:DSeW/X1Y.net
- ドイツ語やラテン語をある程度知ってるとレゲックスは自然に感じる
- 1003 :デフォルトの名無しさん:2017/03/14(火) 10:24:26.23 ID:vbV/Jpv3.net
- 補充
- 1004 :デフォルトの名無しさん:2017/03/14(火) 12:36:40.80 ID:6d/Dn8y7.net
- >>1000
日本語で書けばリージェックスやろ
>>982に発音記号も書いてあるやん
regeという字面ならreは日本語で書くと”り”と発音するのが普通
読み方1つで教養ってでるよな
ALTをアルトなんて読むアホはalternativeという単語も知らないのだろうし
- 1005 :デフォルトの名無しさん:2017/03/14(火) 12:45:02.10 ID:zY6yKh7C.net
- allow denyなんかは中学英語のアクセントや読み方の頻出単語だから
まともに読めない人は色々とお察しはする
- 1006 :デフォルトの名無しさん:2017/03/14(火) 13:00:00.43 ID:Hvng9m9D.net
- 外国語 = 英語という短絡もお察し
- 1007 :デフォルトの名無しさん:2017/03/14(火) 13:29:37.99 ID:dFlCfFI8.net
- >>1005
嘘やろ
denyを中高で習った覚え無いわ
今調べてもセンター試験対策レベル扱いだし
- 1008 :デフォルトの名無しさん:2017/03/14(火) 15:57:04.16 ID:vbV/Jpv3.net
- >読み方1つで教養ってでるよな
- 1009 :デフォルトの名無しさん:2017/03/14(火) 16:02:24.86 ID:GQqLH83Y.net
- 造語で正式な読みも規定されてないし、IPAの発音記号だって2つ併記されてるものをどうこう言うのも大人気ない
2つのうちの好きなほう使えばいいじゃん
- 1010 :デフォルトの名無しさん:2017/03/14(火) 18:36:34.78 ID:gK5uM7c+.net
- >>1005
こないだ職場でデニーって読んで
「デニーズじゃないんだからw」とバカにされたとこだよ…orz
- 1011 :デフォルトの名無しさん:2017/03/14(火) 19:06:49.29 ID:ODacrlG+.net
- 俺中卒だけどデナイだろ?
- 1012 :デフォルトの名無しさん:2017/03/15(水) 01:00:45.86 ID:ko4BTSP2.net
- 次スレ立ててくるよ
- 1013 :デフォルトの名無しさん:2017/03/15(水) 01:57:31.39 ID:458LHYZa.net
- 中学で英語だけは年に1回は100点取ってたけど
denyを教わったことはない
- 1014 :デフォルトの名無しさん:2017/03/15(水) 02:10:35.21 ID:ko4BTSP2.net
- 規制もらってたので代行お願いしました
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489511075/
総レス数 1014
259 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★