Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
探検
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/03/15(水) 02:04:35.47ID:e01p03UP4543
2017/04/14(金) 03:41:56.00ID:8AuQ8qy9 >>44
レスをいただきありがとうございます。教えて頂いた記述はPerlということであってますよね?
Perlを導入して使ってみてからレスをお返ししようといろいろ調べていたら、大変遅れてしまい礼を欠いてしました。
いろんなサイトを見過ぎたせいか、結局導入方法が絞れないというか、よくわからなくり、
時間だけが過ぎましたので不甲斐なく申し訳ないですが兎に角お礼まで。どうもありがとうございました。
レスをいただきありがとうございます。教えて頂いた記述はPerlということであってますよね?
Perlを導入して使ってみてからレスをお返ししようといろいろ調べていたら、大変遅れてしまい礼を欠いてしました。
いろんなサイトを見過ぎたせいか、結局導入方法が絞れないというか、よくわからなくり、
時間だけが過ぎましたので不甲斐なく申し訳ないですが兎に角お礼まで。どうもありがとうございました。
2017/04/14(金) 08:15:43.14ID:mEmX7gnv
ブラウザから実行すれば、簡単
paiza.IO, codepad なら、ログインもいらない
paiza.IO, codepad なら、ログインもいらない
2017/04/14(金) 09:03:58.80ID:uldWbSLb
2017/04/14(金) 11:21:59.85ID:7lZUeeAF
置換でやるとすると、これでどうかな?
これなら適当なエディタやWSH(JScript)ででも実行できる
(先頭の.*?を[\s\S]*?に変えれば、改行コードは末尾のみになる)
ただ、もしかすると考慮抜けの場合があるかも
正規表現:/.*?-([^\s-]+)(?=-)|-*[^-]*?(\r)?$/mg
置換文字:$1$2
これなら適当なエディタやWSH(JScript)ででも実行できる
(先頭の.*?を[\s\S]*?に変えれば、改行コードは末尾のみになる)
ただ、もしかすると考慮抜けの場合があるかも
正規表現:/.*?-([^\s-]+)(?=-)|-*[^-]*?(\r)?$/mg
置換文字:$1$2
2017/04/15(土) 02:46:51.37ID:8aYCgh5m
2017/04/15(土) 09:28:31.10ID:7fUWShMv
2017/04/15(土) 10:02:24.26ID:7fUWShMv
ごめん、「間に入る」だったのか
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?\r?$/mg
$1
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?\r?$/mg
$1
2017/04/15(土) 10:07:27.57ID:7fUWShMv
\rもいらないか
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?$/mg
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?$/mg
2017/04/15(土) 10:21:57.02ID:7fUWShMv
これじゃまずい
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?=[^-])|-*[^-]*$/mg
冗長かもしれない
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?=[^-])|-*[^-]*$/mg
冗長かもしれない
2017/04/15(土) 10:24:14.97ID:7fUWShMv
↑でも問題ないけど
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?!-)|-*[^-]*$/mg
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?!-)|-*[^-]*$/mg
2017/04/15(土) 11:39:21.99ID:8aYCgh5m
>>50-54
無理を利いてくださりありがとうございます。
実は最初の質問に穴があったので別件という形で再質問させていただきました。失礼しました。
教えて頂いた記述は完璧でした本当に感謝です!
レスも何度もくださってこの度は大変お世話になりました。
無理を利いてくださりありがとうございます。
実は最初の質問に穴があったので別件という形で再質問させていただきました。失礼しました。
教えて頂いた記述は完璧でした本当に感謝です!
レスも何度もくださってこの度は大変お世話になりました。
2017/04/20(木) 21:29:57.11ID:rsUIJG5Q
●Regular Expressionの使用環境
Becky!
●検索か置換か?
検索
●説明
+0900以外に一致
●対象データ
+
-
+0
-0
+09
-09
+090
-090
+0900
-0900
+09000
-09000
+09010
-09010
Becky!
●検索か置換か?
検索
●説明
+0900以外に一致
●対象データ
+
-
+0
-0
+09
-09
+090
-090
+0900
-0900
+09000
-09000
+09010
-09010
2017/04/20(木) 21:30:53.51ID:rsUIJG5Q
+
-
+0
-0
+09
-09
+090
-090
-0900
+09000
-09000
+09010
-09010
よろしくお願いします
※"+0900を含まない"を"+0900以外"を含むで実現したいです
-
+0
-0
+09
-09
+090
-090
-0900
+09000
-09000
+09010
-09010
よろしくお願いします
※"+0900を含まない"を"+0900以外"を含むで実現したいです
2017/04/21(金) 08:10:19.34ID:P/4d/uOg
Beckyで使えるかは知らんけど
^(?!\+0900$).*
^(?!\+0900$).*
2017/04/21(金) 12:02:05.13ID:30M0P9UI
zip版をダウロードしてchmヘルプファイルを見てみたら、
正規表現は本当に基本的なものしか無かった
(?!)はおろか()とかのキャプチャ自体無い(括弧は優先順位が上になるだけ)
[abc-d]もダメ( ([ab]|[c-d])と分けて書くらしい)
だから、やるなら
^[^+]|^\+$|^\+[^0]|^\+0]$|^\+0[^9]|…と全ての場合を併記するしかないかも
正規表現は本当に基本的なものしか無かった
(?!)はおろか()とかのキャプチャ自体無い(括弧は優先順位が上になるだけ)
[abc-d]もダメ( ([ab]|[c-d])と分けて書くらしい)
だから、やるなら
^[^+]|^\+$|^\+[^0]|^\+0]$|^\+0[^9]|…と全ての場合を併記するしかないかも
2017/04/21(金) 14:10:39.59ID:P/4d/uOg
鬼車や鬼雲使わず独自実装なんだね。シェアウェアだからかな
非包含か先読みを使えなきゃ実質無理だと思う
^\+0900$ の方をどうにかする運用を考えた方が良い
Beckyの公式のメーリングリストや掲示板で正規表現じゃなく具体的にやりたい事を質問してみたら?
上手い運用方法を思い付いてくれる人が居るかも
非包含か先読みを使えなきゃ実質無理だと思う
^\+0900$ の方をどうにかする運用を考えた方が良い
Beckyの公式のメーリングリストや掲示板で正規表現じゃなく具体的にやりたい事を質問してみたら?
上手い運用方法を思い付いてくれる人が居るかも
2017/04/21(金) 16:15:06.41ID:hNfgTF//
GPLならいざ知らずPCREや鬼車, 鬼雲もBSDライセンスだからなぁ
誰か外部の高機能正規表現ライブラリを利用するプラグインとか作ってそうだけど
誰か外部の高機能正規表現ライブラリを利用するプラグインとか作ってそうだけど
2017/04/22(土) 00:09:10.84ID:R9IUk1ak
2017/04/22(土) 04:17:39.78ID:T741eTMO
ほらよ。使い物になるかは知らんが示された対象データにおいては要件を満たす
^(.{,4}|-0900|.{6,})$
量指定子の{}が使えないなら
^(.|..|...|....|-0900|......)$
Beckyの仕様が一般的なPerlの正規表現とは違うならここで聞いても分かるやつ少ないだろうし
後出しする必要が出たらBeckyの方で聞いた方がいいぞ
^(.{,4}|-0900|.{6,})$
量指定子の{}が使えないなら
^(.|..|...|....|-0900|......)$
Beckyの仕様が一般的なPerlの正規表現とは違うならここで聞いても分かるやつ少ないだろうし
後出しする必要が出たらBeckyの方で聞いた方がいいぞ
2017/04/22(土) 17:13:13.21ID:1zuuifbC
>>63
+0900のみのデータなんて普通は無いよね
こういうのはJSTとかの時刻の後ろにつくもんじゃないの?
何がしたいのかよく解からないんだが?
フィルタで使うんなら、〜が「ある時」「ない時」と選択できるようだから、
「ない時」にチェックすれば君の要件どうりなら、指定は^+0900$でよいことになる(+0900のみがない時ということになるけど)
だけど、上で疑問視したように+0900の前に時刻があるならマッチしなくなるよ
+0900のみのデータなんて普通は無いよね
こういうのはJSTとかの時刻の後ろにつくもんじゃないの?
何がしたいのかよく解からないんだが?
フィルタで使うんなら、〜が「ある時」「ない時」と選択できるようだから、
「ない時」にチェックすれば君の要件どうりなら、指定は^+0900$でよいことになる(+0900のみがない時ということになるけど)
だけど、上で疑問視したように+0900の前に時刻があるならマッチしなくなるよ
2017/04/22(土) 17:16:27.15ID:1zuuifbC
+のエスケープし忘れた(仕様にエスケープはあるよね?)
6756 ◆mUjtBupG2M
2017/04/22(土) 21:58:03.61ID:UjWxDTr12017/04/23(日) 02:31:41.68ID:hK6ntaQJ
Beckyって基本的なものとはいえ正規表現使えるのか、いいなぁ
会社で強制使用のOutlookなんか and or しかない上に
検索語を入力中に変なところで勝手にor区切りするわフォーカス外れるわでもうムチャクチャ
仕事で何年も前のメール探すのに絞り込めなくて、最終的には数百通人間grep状態しょっちゅう…
会社で強制使用のOutlookなんか and or しかない上に
検索語を入力中に変なところで勝手にor区切りするわフォーカス外れるわでもうムチャクチャ
仕事で何年も前のメール探すのに絞り込めなくて、最終的には数百通人間grep状態しょっちゅう…
2017/04/23(日) 05:21:48.35ID:DzF9wMLj
^(\+|-|-0900)(.?|..|...|([1-9].|.[0-8])..|..([1-9].|.[1-9])|.....+)$
2017/04/23(日) 05:33:24.87ID:DzF9wMLj
^(.|-0900)(.?|..|...|(([1-9]|\D).|.([0-8]|\D))..|..(([1-9]|\D).|.([1-9]|\D))|.....+)$
2017/04/23(日) 05:44:27.04ID:DzF9wMLj
^(.|-0900)(.?|..|...|([^0].|.[^9])..|..([^0].|.[^0])|.....+)$
2017/04/23(日) 05:52:59.96ID:DzF9wMLj
^(-0900|.(.?|..|...|([^0].|.[^9])..|..([^0].|.[^0])|.....+))$
2017/04/23(日) 07:11:51.07ID:2K1Rl01+
^[^+]*$|\+(|0*[0-9]|0*[1-9][0-9]|[1-9][0-9][0-9]|0([1-7][0-9][0-9]|8[0-9][0-9])|0(90[1-9]|9[1-9][0-9])|[1-9][0-9][0-9][0-9]|[0-9][0-9][0-9][0-9][0-9]+)([^0-9]|$)
●入力と結果(✓一致 ❌不一致)
✓ Sat May 24 08:05:44 2014
✓ Tue Mar 28 06:21:47 2017 +
✓ Tue, 26 Jul 2016 23:55:46 -0
✓ Wed, 05 Oct 2016 15:24:09 -0900
✓ Wed, 4 Mar 2015 08:39:08 +09000
✓ Fri, 30 Oct 2015 07:56:41 +00900
✓ Wed, 4 Mar 2015 08:39:08 0900
❌ Wed, 25 Mar 2009 14:18:41 +0900
❌ Tue, 8 Mar 2016 16:11:55 +0900 (JST)
❌ Sat, 24 Jul 2004 03:48:21 +0900<br>
●入力と結果(✓一致 ❌不一致)
✓ Sat May 24 08:05:44 2014
✓ Tue Mar 28 06:21:47 2017 +
✓ Tue, 26 Jul 2016 23:55:46 -0
✓ Wed, 05 Oct 2016 15:24:09 -0900
✓ Wed, 4 Mar 2015 08:39:08 +09000
✓ Fri, 30 Oct 2015 07:56:41 +00900
✓ Wed, 4 Mar 2015 08:39:08 0900
❌ Wed, 25 Mar 2009 14:18:41 +0900
❌ Tue, 8 Mar 2016 16:11:55 +0900 (JST)
❌ Sat, 24 Jul 2004 03:48:21 +0900<br>
2017/04/23(日) 14:27:49.79ID:fsvPYIZO
>>68
wanderlust使ってて十分だがmaildirでファイル保存してるのでなんでもありだ
wanderlust使ってて十分だがmaildirでファイル保存してるのでなんでもありだ
7556 ◆mUjtBupG2M
2017/04/23(日) 22:57:55.33ID:/2AcrhSu2017/04/28(金) 19:19:48.10ID:VBxbz7un
正規表現を勉強し始めた者です
>>73の正規表現について2つ質問させて下さい
展開すると以下のようになりますよね
^[^+]*$ 「+」が無い行に一致。残りは「+」が在る行
(
「+」に数字が続く場合の0〜3桁とその先頭に0が続くパターン ※Q1
\+
\+0*[0-9]
\+0*[1-9][0-9] [1-9]なのは0*0[0-9]は0*[0-9]に含まれているから
\+[1-9][0-9][0-9] 3桁目で0*とすると0900にマッチしてしまう
4桁で「0900以外」のパターン ※Q2
\+0[1-7][0-9][0-9]
\+08[0-9][0-9]
\+090[1-9]
\+09[1-9][0-9]
\+[1-9][0-9][0-9][0-9]
\+[0-9][0-9][0-9][0-9][0-9]+ 5桁以上
)
([^0-9]|$) 続く文字が数字以外もしくは行末。これが無いと+0900に3桁以下の式でマッチしてしまう
Q1
3桁までの表現に0*としてるのはなぜなのでしょうか?
素人考えには
[0-9]?
[0-9][0-9]
[0-9][0-9][0-9]
で良いのでは?と思うのです。 [0-9]?|[0-9][0-9][0-9]? これでも0〜1桁と2〜3桁になりますよね?
「0*」という書き方の方が処理が速くなったりとか何か理由があるのでしょうか?
>>73の正規表現について2つ質問させて下さい
展開すると以下のようになりますよね
^[^+]*$ 「+」が無い行に一致。残りは「+」が在る行
(
「+」に数字が続く場合の0〜3桁とその先頭に0が続くパターン ※Q1
\+
\+0*[0-9]
\+0*[1-9][0-9] [1-9]なのは0*0[0-9]は0*[0-9]に含まれているから
\+[1-9][0-9][0-9] 3桁目で0*とすると0900にマッチしてしまう
4桁で「0900以外」のパターン ※Q2
\+0[1-7][0-9][0-9]
\+08[0-9][0-9]
\+090[1-9]
\+09[1-9][0-9]
\+[1-9][0-9][0-9][0-9]
\+[0-9][0-9][0-9][0-9][0-9]+ 5桁以上
)
([^0-9]|$) 続く文字が数字以外もしくは行末。これが無いと+0900に3桁以下の式でマッチしてしまう
Q1
3桁までの表現に0*としてるのはなぜなのでしょうか?
素人考えには
[0-9]?
[0-9][0-9]
[0-9][0-9][0-9]
で良いのでは?と思うのです。 [0-9]?|[0-9][0-9][0-9]? これでも0〜1桁と2〜3桁になりますよね?
「0*」という書き方の方が処理が速くなったりとか何か理由があるのでしょうか?
7776
2017/04/28(金) 19:24:12.30ID:VBxbz7un Q2
\+0[1-7][0-9][0-9]
\+08[0-9][0-9]
[1-7]なのは00の場合1〜3桁の式と被るから1からなのだと思うのですが
この2つは合わせて \+0[1-8][0-9][0-9] としてはダメなのでしょうか?
「0900以外」の4桁の数字のパターンは以下のようになるかと思います
[1-9][0-9][0-9][0-9] 0xxx
[0-9][0-8][0-9][0-9] x9xx
[0-9][0-9][1-9][0-9] xx0x
[0-9][0-9][0-9][1-9] xxx0
被っているところを数値に置き換え
[1-9][0-9][0-9][0-9]
0 [0-8][0-9][0-9]
0 9 [1-9][0-9]
0 9 0 [1-9]
一応Q1と合わせ疑問に思ったところを書き換えて>>73さんのサンプルと+0〜+10000と+0000〜+9999をテキストに書き出して
テストしてみたところ問題無さそうなのを確認したのですがそれでも確信が持てず質問させて頂きました
試した式は以下になります
^[^+]*$|\+([0-9]?|[0-9][0-9]|[0-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|0[0-8][0-9][0-9]|09[1-9][0-9]|090[1-9]|[0-9][0-9][0-9][0-9][0-9]+)([^0-9]|$)
^[^+]*$|\+((|[0-9][0-9])[0-9]?|([1-9][0-9]|0[0-8])[0-9][0-9]|09([1-9][0-9]|0[1-9])|[0-9][0-9][0-9][0-9][0-9]+)([^0-9]|$)
^[^+]*$|\+(|090[1-9]|((([0-9][0-9]+|(|[1-9]))[0-9]|(|0[0-8]))[0-9]|(|09[1-9]))[0-9])([^0-9]|$)
身近に聞ける人が居ないので自分の解釈が間違っていたり何か見落としているのではないか?と悶々としております
どなたか分かる方が居られましたら2つの疑問点の回答をお願いしたいです
また解釈を間違えている箇所がありましたらそちらも指摘下さい。よろしくお願いします
\+0[1-7][0-9][0-9]
\+08[0-9][0-9]
[1-7]なのは00の場合1〜3桁の式と被るから1からなのだと思うのですが
この2つは合わせて \+0[1-8][0-9][0-9] としてはダメなのでしょうか?
「0900以外」の4桁の数字のパターンは以下のようになるかと思います
[1-9][0-9][0-9][0-9] 0xxx
[0-9][0-8][0-9][0-9] x9xx
[0-9][0-9][1-9][0-9] xx0x
[0-9][0-9][0-9][1-9] xxx0
被っているところを数値に置き換え
[1-9][0-9][0-9][0-9]
0 [0-8][0-9][0-9]
0 9 [1-9][0-9]
0 9 0 [1-9]
一応Q1と合わせ疑問に思ったところを書き換えて>>73さんのサンプルと+0〜+10000と+0000〜+9999をテキストに書き出して
テストしてみたところ問題無さそうなのを確認したのですがそれでも確信が持てず質問させて頂きました
試した式は以下になります
^[^+]*$|\+([0-9]?|[0-9][0-9]|[0-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|0[0-8][0-9][0-9]|09[1-9][0-9]|090[1-9]|[0-9][0-9][0-9][0-9][0-9]+)([^0-9]|$)
^[^+]*$|\+((|[0-9][0-9])[0-9]?|([1-9][0-9]|0[0-8])[0-9][0-9]|09([1-9][0-9]|0[1-9])|[0-9][0-9][0-9][0-9][0-9]+)([^0-9]|$)
^[^+]*$|\+(|090[1-9]|((([0-9][0-9]+|(|[1-9]))[0-9]|(|0[0-8]))[0-9]|(|09[1-9]))[0-9])([^0-9]|$)
身近に聞ける人が居ないので自分の解釈が間違っていたり何か見落としているのではないか?と悶々としております
どなたか分かる方が居られましたら2つの疑問点の回答をお願いしたいです
また解釈を間違えている箇所がありましたらそちらも指摘下さい。よろしくお願いします
2017/04/29(土) 18:45:01.61ID:0PD6E3oz
>>76-77
どちらも深い意味はないよ
行き当たりばったりで何とかテストに通るようにしただけだから
> 3桁までの表現に0*としてるのはなぜなのでしょうか?
コメント付けてくれた通りまさしく「0〜3桁とその先頭に0が続くパターン」
という順序で考えてたから結果的にそうなったのだと思う
まず0から999に一致するパターンを書いて、それに 0 が先行する場合 0* を足して
でも 0900 には一致しないように… とかそんな感じ
> この2つは合わせて \+0[1-8][0-9][0-9] としてはダメなのでしょうか?
ダメじゃない
その辺りはこのジェネレーターで生成した正規表現をもとにしてる
Regex Numeric Range Generator
http://gamon.webfactional.com/regexnumericrangegenerator/
100–899 ⇒ ([1-7][0-9]{2}|8[0-8][0-9]|89[0-9])
たまたま 8[0-8][0-9] と 89[0-9] がまとめられると気がついたのでそこは直したけど
全部まとめられるとは気づいてなかっただけ
どちらも深い意味はないよ
行き当たりばったりで何とかテストに通るようにしただけだから
> 3桁までの表現に0*としてるのはなぜなのでしょうか?
コメント付けてくれた通りまさしく「0〜3桁とその先頭に0が続くパターン」
という順序で考えてたから結果的にそうなったのだと思う
まず0から999に一致するパターンを書いて、それに 0 が先行する場合 0* を足して
でも 0900 には一致しないように… とかそんな感じ
> この2つは合わせて \+0[1-8][0-9][0-9] としてはダメなのでしょうか?
ダメじゃない
その辺りはこのジェネレーターで生成した正規表現をもとにしてる
Regex Numeric Range Generator
http://gamon.webfactional.com/regexnumericrangegenerator/
100–899 ⇒ ([1-7][0-9]{2}|8[0-8][0-9]|89[0-9])
たまたま 8[0-8][0-9] と 89[0-9] がまとめられると気がついたのでそこは直したけど
全部まとめられるとは気づいてなかっただけ
2017/04/30(日) 00:11:00.00ID:PxU3UZJt
2017/04/30(日) 03:04:48.91ID:sTLetcQY
慇懃無礼でうぜえ
81デフォルトの名無しさん
2017/04/30(日) 04:34:43.13ID:smayr5dM >>80
確かに邪魔だけど、おこるほどじゃない
確かに邪魔だけど、おこるほどじゃない
2017/04/30(日) 07:25:58.21ID:PxU3UZJt
2017/04/30(日) 07:50:01.45ID:BxxkE9Fv
2017/04/30(日) 08:21:18.33ID:PxU3UZJt
>>83
自分を非難している相手を擁護するのは変な感じだが
バカかどうかはあの一文からは分からないでしょ
それに自分も慇懃無礼にあたらないかとは危惧していたし的外れとは言えないと思う
何でも度が過ぎるのは良くない
だが齟齬を生じさせないようにする為にはこういったスレで長文になるのは仕方なくないか?
身の丈に合わない質問して「この解釈で合ってる?」みたいな聞き方した自分にも非があるとは思うが
バカ丁寧禁止より長文禁止の方が厳しいと思うわ
自分を非難している相手を擁護するのは変な感じだが
バカかどうかはあの一文からは分からないでしょ
それに自分も慇懃無礼にあたらないかとは危惧していたし的外れとは言えないと思う
何でも度が過ぎるのは良くない
だが齟齬を生じさせないようにする為にはこういったスレで長文になるのは仕方なくないか?
身の丈に合わない質問して「この解釈で合ってる?」みたいな聞き方した自分にも非があるとは思うが
バカ丁寧禁止より長文禁止の方が厳しいと思うわ
2017/04/30(日) 09:47:52.98ID:Dc5Ny+RF
正規表現で数字は、[0-9] または、\d
[0-9][0-9] なら、\d{2} と同じ
[0-9][0-9] なら、\d{2} と同じ
2017/04/30(日) 12:18:27.09ID:VPr4LyhY
丁寧なことが必ずしも良いとは限らない
質問するときは相手のことも考えて無駄を省くことが大事
質問を整理している間に自分で気付くこともある
質問するときは相手のことも考えて無駄を省くことが大事
質問を整理している間に自分で気付くこともある
2017/04/30(日) 15:52:39.90ID:3TcYedTF
2017/04/30(日) 20:35:41.23ID:IjVGB2EF
お前ら仲良くしろ
2017/05/01(月) 09:32:05.11ID:lsW6qson
長文NGしてれば見なくて済むのにわざわざ見てウゼェ言ってる奴って
マゾなの?やり方分かんないバカなの?ウゼェ言ってる俺カッケーな池沼?
マゾなの?やり方分かんないバカなの?ウゼェ言ってる俺カッケーな池沼?
2017/05/01(月) 11:29:31.86ID:hzoMRY/L
3行でまとめろ
91デフォルトの名無しさん
2017/05/01(月) 18:42:02.68ID:Ypd7EE7u ダ・ヴィンチ曰く「単純であることは究極の洗練だ」
今回の例にどれほど当てはまるかはわからんが、目指すのはそこだ。
今回の例にどれほど当てはまるかはわからんが、目指すのはそこだ。
2017/05/03(水) 15:46:12.05ID:/wkwyrKC
検索置換を教えて下さい。
行末の半角数字(桁数はまちまち)を行頭に移動したいです。
──────────────
■置換前■
abc1
東44
4-123
あいうえお02
──────────────
■置換後■
1abc
44東
1234-
02あいうえお
──────────────
使ってるエディタはgpadです。サクラエディタもあります。宜しくお願い致します。
行末の半角数字(桁数はまちまち)を行頭に移動したいです。
──────────────
■置換前■
abc1
東44
4-123
あいうえお02
──────────────
■置換後■
1abc
44東
1234-
02あいうえお
──────────────
使ってるエディタはgpadです。サクラエディタもあります。宜しくお願い致します。
2017/05/03(水) 16:08:53.89ID:KtRh/Jcn
>>92
gpadやサクラエディタは知らんけどJSならこんな感じ
replace(/(.*?)([0-9]*)¥n/g, "$2$1¥n")
最後の行にも改行がある前提
なければ入力の最後を示す$をOR条件として指定する
gpadやサクラエディタは知らんけどJSならこんな感じ
replace(/(.*?)([0-9]*)¥n/g, "$2$1¥n")
最後の行にも改行がある前提
なければ入力の最後を示す$をOR条件として指定する
2017/05/03(水) 17:09:36.61ID:/wkwyrKC
2017/05/03(水) 17:53:10.90ID:tt/7nJiL
2017/05/03(水) 18:09:12.54ID:/wkwyrKC
>>95
すごいできます!即レスありがとうございました!感謝です!
すごいできます!即レスありがとうございました!感謝です!
2017/05/04(木) 02:53:36.15ID:P+e+GY0n
●Regular Expressionの使用環境
Bash on Ubuntu on Windows での sed
●検索か置換か?
置換
●説明
[ と ] で括られた最初の文言以外を削除したい
●対象データ
aaa[bbb]ccc
[ddd]eee
fff[ggg]hhh[iii]jjj
kkk
●希望する結果
bbb
ddd
ggg
空行、もしくは、そのまま(上記だとkkk)
cat hoge.txt | sed -e 's/.*\(\[.*]\)/\1/g'
で行けそうな気がしたんですが、結果は
[bbb]ccc
[ddd]eee
[iii]jjj
kkk
この有様。誰か助けてください。
Bash on Ubuntu on Windows での sed
●検索か置換か?
置換
●説明
[ と ] で括られた最初の文言以外を削除したい
●対象データ
aaa[bbb]ccc
[ddd]eee
fff[ggg]hhh[iii]jjj
kkk
●希望する結果
bbb
ddd
ggg
空行、もしくは、そのまま(上記だとkkk)
cat hoge.txt | sed -e 's/.*\(\[.*]\)/\1/g'
で行けそうな気がしたんですが、結果は
[bbb]ccc
[ddd]eee
[iii]jjj
kkk
この有様。誰か助けてください。
2017/05/04(木) 03:21:35.65ID:1Mi5Sic1
>>97
s/\].*\|.*\[//g
s/\].*\|.*\[//g
2017/05/04(木) 03:22:48.12ID:7TNYL3q7
cat test.txt | sed -E 's/[^\[]*(\[[^\[]*\]).*/\1/g'
sedはnon-greedyサポートしてないので[^\[]*で
"["以外の文字にマッチするように指定する
sedはnon-greedyサポートしてないので[^\[]*で
"["以外の文字にマッチするように指定する
100デフォルトの名無しさん
2017/05/04(木) 10:29:51.92ID:P+e+GY0n101デフォルトの名無しさん
2017/05/05(金) 08:29:26.53ID:bm+deAdf 「Regular Expression」ってことは
RegularじゃないExpressionもあるのかな?
RegularじゃないExpressionもあるのかな?
102デフォルトの名無しさん
2017/05/05(金) 11:21:47.47ID:Ll1Ek2oh >>101
https://www.google.co.jp/search?q=irregular+expression&ie=UTF-8&oe=UTF-8&hl=ja-jp&client=safari
https://www.google.co.jp/search?q=irregular+expression&ie=UTF-8&oe=UTF-8&hl=ja-jp&client=safari
103デフォルトの名無しさん
2017/05/05(金) 13:41:26.64ID:Xc50Qjgk >「irregular expression」に関連するキーワード
>
>保守速報
ワロタ
>
>保守速報
ワロタ
104デフォルトの名無しさん
2017/05/07(日) 03:23:46.82ID:bf3ZF7DF >>101
正規表現で表される集合の標本それぞれが正規でない表現じゃないの
正規表現で表される集合の標本それぞれが正規でない表現じゃないの
105デフォルトの名無しさん
2017/05/07(日) 07:31:07.21ID:fOF53fEF そもそも誤訳だし
107デフォルトの名無しさん
2017/05/13(土) 23:19:52.64ID:4xoUv3bU 書き込めない?
108デフォルトの名無しさん
2017/05/14(日) 17:21:45.80ID:IUk17Lsy ●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
検索
●説明
「ABC」の英大文字と小文字を区別せずに検索したいのですが
書き方はあるのでしょうか?
今は『abc|Abc|ABC』という正規表現を使っていますが
書くのがめんどうだし、aBcやabCにもヒットさせたいので
もっと簡潔な書き方があれば教えて下さい。
サクラエディタ
●検索か置換か?
検索
●説明
「ABC」の英大文字と小文字を区別せずに検索したいのですが
書き方はあるのでしょうか?
今は『abc|Abc|ABC』という正規表現を使っていますが
書くのがめんどうだし、aBcやabCにもヒットさせたいので
もっと簡潔な書き方があれば教えて下さい。
109デフォルトの名無しさん
2017/05/14(日) 18:29:13.61ID:YzpdvDlp110デフォルトの名無しさん
2017/05/14(日) 18:30:36.34ID:qjlEaygK そのものズバリのチェックボックスがあるのに釣りかメクラか
111デフォルトの名無しさん
2017/05/14(日) 20:19:12.83ID:IUk17Lsy112デフォルトの名無しさん
2017/05/27(土) 19:51:02.34ID:gdXMy//z ●Regular Expressionの使用環境
テキストエディタMeryでの強調文字列指定について質問です
http://www.haijin-boys.com/
Onigmo (Oniguruma-mod) (regular expression library) 5.15.0
https://github.com/k-takata/Onigmo
●検索か置換か?
検索?
●対象データ
"D:\PATH\HOGE",1,307,,0,"15/01/01 00:00:00","12/12/31 00:00:00",1,1,,,,"著者X",,,,,"タイトルA",,,2,,,,,1,1101,1101
"D:\PATH\FUGA",,,,,,"15/02/01 00:00:00",1,1,,,,,,,,,"名前B",4,,0
"E:\FOLDER\PIYO",20,197,91,0,"16/03/01 00:00:00","15/04/01 00:00:00",1,1,,,,"著者Y,Z","出版社",,,,"題名C"
●希望する結果
上のようなテキスト各行の最後に出現するダブルクォーテーション囲いの文字列
"タイトルA"
"名前B"
"題名C"
を取得して強調表示したいのですがどのような正規表現で記述すればよいのでしょうか?
あるいはダブルクォーテーションを含まない状態(タイトルA、名前B、題名C)でも差し支えありません
●説明?
・各行でカンマや "" 囲いの数はまちまちで、"" 囲いの中にカンマがある場合もあります
・"" 囲いの中のカンマを無視した場合、17番目のカンマの直後の "" 囲い部分です
・"タイトルA"、"名前B"、"題名C"のあとに続く文字列の長さ、形式は不定です
・対照データはマンガミーヤのブックリストです
よろしくお願いします
テキストエディタMeryでの強調文字列指定について質問です
http://www.haijin-boys.com/
Onigmo (Oniguruma-mod) (regular expression library) 5.15.0
https://github.com/k-takata/Onigmo
●検索か置換か?
検索?
●対象データ
"D:\PATH\HOGE",1,307,,0,"15/01/01 00:00:00","12/12/31 00:00:00",1,1,,,,"著者X",,,,,"タイトルA",,,2,,,,,1,1101,1101
"D:\PATH\FUGA",,,,,,"15/02/01 00:00:00",1,1,,,,,,,,,"名前B",4,,0
"E:\FOLDER\PIYO",20,197,91,0,"16/03/01 00:00:00","15/04/01 00:00:00",1,1,,,,"著者Y,Z","出版社",,,,"題名C"
●希望する結果
上のようなテキスト各行の最後に出現するダブルクォーテーション囲いの文字列
"タイトルA"
"名前B"
"題名C"
を取得して強調表示したいのですがどのような正規表現で記述すればよいのでしょうか?
あるいはダブルクォーテーションを含まない状態(タイトルA、名前B、題名C)でも差し支えありません
●説明?
・各行でカンマや "" 囲いの数はまちまちで、"" 囲いの中にカンマがある場合もあります
・"" 囲いの中のカンマを無視した場合、17番目のカンマの直後の "" 囲い部分です
・"タイトルA"、"名前B"、"題名C"のあとに続く文字列の長さ、形式は不定です
・対照データはマンガミーヤのブックリストです
よろしくお願いします
113デフォルトの名無しさん
2017/05/28(日) 06:04:53.01ID:PkY5eGnw "[^"]*"(?=[^"]*$)
(?<=")[^"]*(?="[^"]*$)
(?<=")[^"]*(?="[^"]*$)
114112
2017/05/28(日) 07:52:06.42ID:5aByZaI0 >>113
両方のパターンを教えていただきまして、ありがとうございます
"フォルダパス" の "[A-Z]:\\.+?" と "年/月/日 時:分:秒 "の "../.+?"
タイトルフィールドだけは全/半スペースで字下げして "[ ]+.+?" というパターンまでは作れましたが
字下げなしで強調表示できるようになり、一層見分けやすく、編集しやすくなりました
なぜこれらが最後の "タイトル" 部分にマッチするのか、まだ理解できてはいないのですが
読み解けるように頑張ってみます
両方のパターンを教えていただきまして、ありがとうございます
"フォルダパス" の "[A-Z]:\\.+?" と "年/月/日 時:分:秒 "の "../.+?"
タイトルフィールドだけは全/半スペースで字下げして "[ ]+.+?" というパターンまでは作れましたが
字下げなしで強調表示できるようになり、一層見分けやすく、編集しやすくなりました
なぜこれらが最後の "タイトル" 部分にマッチするのか、まだ理解できてはいないのですが
読み解けるように頑張ってみます
115112
2017/05/28(日) 11:31:39.10ID:5aByZaI0 先読みと後読みの使い方をなんとなく理解できるようになったかも?という感じで、自分で同じ表現をすぐに導き出せるかとなるとまだまだ難しそうです
調子にのって後読みで12番目のカンマの後ろの "著者" にマッチさせようとやってみましたが、繰り返し表現をふくむ後読みはダメだとか…
^".+?"([^,]*,){12}".+?" で「行頭から"著者"まで」はできても ^(?<=".+?"([^,]*,){12})".+?" では機能しないんですね
あれこれ弄り回して "タイトル" からカンマ5つ戻るかたちで先読みにして "[^"]*"(?=(,[^,]*){5}"[^"]*"(?=[^"]*$)) にしたら "著者" に
同様に {4} で "出版社" にマッチしました
おかげさまで色々と勉強になり、あらためてありがとうございました
調子にのって後読みで12番目のカンマの後ろの "著者" にマッチさせようとやってみましたが、繰り返し表現をふくむ後読みはダメだとか…
^".+?"([^,]*,){12}".+?" で「行頭から"著者"まで」はできても ^(?<=".+?"([^,]*,){12})".+?" では機能しないんですね
あれこれ弄り回して "タイトル" からカンマ5つ戻るかたちで先読みにして "[^"]*"(?=(,[^,]*){5}"[^"]*"(?=[^"]*$)) にしたら "著者" に
同様に {4} で "出版社" にマッチしました
おかげさまで色々と勉強になり、あらためてありがとうございました
116デフォルトの名無しさん
2017/05/28(日) 12:13:46.77ID:IsUf2Pl+ こんな古代呪文みたいなの、実際に仕事とかで使ってないとなかなか覚えないし
覚えてもすぐ忘れてしまうよなw
全てのパターンを記憶して空で完全詠唱できる人なんているんだろうか?
覚えてもすぐ忘れてしまうよなw
全てのパターンを記憶して空で完全詠唱できる人なんているんだろうか?
117デフォルトの名無しさん
2017/05/28(日) 13:15:52.74ID:QUomuFPF 暗唱できる必要性があるのか?
使うときにそういうのがあったなあって思う出すだけでいいだろ
あとは詳細を見て使えばいいだけ
使うときにそういうのがあったなあって思う出すだけでいいだろ
あとは詳細を見て使えばいいだけ
118デフォルトの名無しさん
2017/05/28(日) 13:26:02.06ID:35oU3ReV 仕事じゃなく趣味で覚えたけど
間違いなく覚えた方が便利
どっかに正規表現化してるだけでお金貰える仕事ないかな
間違いなく覚えた方が便利
どっかに正規表現化してるだけでお金貰える仕事ないかな
119デフォルトの名無しさん
2017/05/28(日) 15:27:00.29ID:dHcH/mRb >>116
わたしレベルになると詠唱破棄すら可能w
わたしレベルになると詠唱破棄すら可能w
120デフォルトの名無しさん
2017/05/28(日) 16:06:45.06ID:MqtJ47ff 言語環境ごとに使える使えない、エスケープ必要不必要を間違えたりする
サポートしてない環境の多い先読みとかは他の手段使っちゃったりするからなかなか使いこなせない
サポートしてない環境の多い先読みとかは他の手段使っちゃったりするからなかなか使いこなせない
121デフォルトの名無しさん
2017/05/28(日) 16:10:29.49ID:W53JMrzP $1 と \1 を間違えて泣きをみて以来、むしろ記憶しないようにしている……・
122デフォルトの名無しさん
2017/05/28(日) 16:18:27.70ID:mQ0E20+1 perlから初めるとカタワになるな
123デフォルトの名無しさん
2017/05/29(月) 08:14:03.69ID:XV2pt9yI えっ!?
124デフォルトの名無しさん
2017/05/29(月) 11:05:33.03ID:sPbSPx8D コマンドプロンプトのfindstrコマンドで使えるやつより貧弱な正規表現環境なんてないよね?
125デフォルトの名無しさん
2017/05/29(月) 11:21:53.73ID:sPbSPx8D126デフォルトの名無しさん
2017/05/29(月) 11:24:10.17ID:sPbSPx8D127デフォルトの名無しさん
2017/05/29(月) 21:58:39.79ID:YdL4iPz3 >>124
おれの彼女の胸
おれの彼女の胸
128デフォルトの名無しさん
2017/05/30(火) 13:16:32.07ID:V9BCWx6K >>118
とある地方の区画整理の際、住所表記が変わるので
住所を正規化するために正規表現と簡単なDB処理とを組み合わせた
単純な処理を行うだけの1日仕事で、
そこらのリーマンの3ヶ月分ぐらいお金になった事とかあったな
仕事柄色んな会社を訪問するけど
テキストの簡単な置換すらできない(まずテキスト置換という概念を知らない)人って
事務程度でしかパソコン使わない人にはめちゃくちゃ多いんだよね
そんなに人達に (.+)abcd\n みたいな初歩的な正規表現を教えると
物凄く驚かれる
見下すようだけど世の中そんなもん
とある地方の区画整理の際、住所表記が変わるので
住所を正規化するために正規表現と簡単なDB処理とを組み合わせた
単純な処理を行うだけの1日仕事で、
そこらのリーマンの3ヶ月分ぐらいお金になった事とかあったな
仕事柄色んな会社を訪問するけど
テキストの簡単な置換すらできない(まずテキスト置換という概念を知らない)人って
事務程度でしかパソコン使わない人にはめちゃくちゃ多いんだよね
そんなに人達に (.+)abcd\n みたいな初歩的な正規表現を教えると
物凄く驚かれる
見下すようだけど世の中そんなもん
129デフォルトの名無しさん
2017/05/30(火) 17:50:42.66ID:bhgaCfDA >>128
まぁハードル高いよね、低くないと言うべきか
知らなきゃ「正規表現」というチェックボックスがあっても、それが何をするものなのか
言葉から具体的イメージが全く湧かないし
ヘルプ見てはじめて何をするものなのかわかるという、といっても具体例が
無ければヘルプ見たところで「難しそう>便利そう」になりがち
一目で「難しそう<便利そう」になるならとっくに正規表現を使ってる層だろうし
ファイルの検索 や excel や word や メモ帳 、IE、Edge あたりに正規表現が
最初っからあれば話は違ってくるんだろうなと
Mac触った事ないからアレだけど、Macなら充実してるのかしら?
まぁハードル高いよね、低くないと言うべきか
知らなきゃ「正規表現」というチェックボックスがあっても、それが何をするものなのか
言葉から具体的イメージが全く湧かないし
ヘルプ見てはじめて何をするものなのかわかるという、といっても具体例が
無ければヘルプ見たところで「難しそう>便利そう」になりがち
一目で「難しそう<便利そう」になるならとっくに正規表現を使ってる層だろうし
ファイルの検索 や excel や word や メモ帳 、IE、Edge あたりに正規表現が
最初っからあれば話は違ってくるんだろうなと
Mac触った事ないからアレだけど、Macなら充実してるのかしら?
130デフォルトの名無しさん
2017/05/30(火) 22:14:32.37ID:wMq9WrJJ131デフォルトの名無しさん
2017/05/30(火) 22:28:36.41ID:RvF0nsOU132デフォルトの名無しさん
2017/05/31(水) 02:32:02.26ID:6BoaVWxP システム屋とかシステム会社って何のシステム?
133デフォルトの名無しさん
2017/05/31(水) 05:29:32.86ID:hSyYnyRA 使い捨てコードといったらPerlで書いてた世代は正規表現に抵抗無さそう
134デフォルトの名無しさん
2017/05/31(水) 05:30:03.72ID:sJHTybMt135デフォルトの名無しさん
2017/05/31(水) 08:06:38.95ID:rBoo2fCo 小さな会社だと他より少しPC関連に詳しいってだけでIT部長とか言われこき使われる
勿論そんな役職なんて無い
正規表現なんて言葉を発したらセクハラだの変態だの言われかねん
勿論そんな役職なんて無い
正規表現なんて言葉を発したらセクハラだの変態だの言われかねん
136デフォルトの名無しさん
2017/05/31(水) 11:16:23.49ID:u9qpXxTe137デフォルトの名無しさん
2017/05/31(水) 11:27:09.17ID:u9qpXxTe138デフォルトの名無しさん
2017/05/31(水) 11:46:52.88ID:AV1cHHAT CSV は、" などのエスケープについて、様々な方言があるから、正規表現では無理。
CSV の方言・規格を確定させてから、Ruby を使うべき
バグのほとんどが設計段階・仕様で生じる。
方言さえ確定していれば、バグらない
CSV の方言・規格を確定させてから、Ruby を使うべき
バグのほとんどが設計段階・仕様で生じる。
方言さえ確定していれば、バグらない
139デフォルトの名無しさん
2017/05/31(水) 11:53:36.36ID:L1juUrGR >>135
会社の忘年会では正規表現やりますって言ってパンツ脱ぐのか?
会社の忘年会では正規表現やりますって言ってパンツ脱ぐのか?
140デフォルトの名無しさん
2017/05/31(水) 12:15:57.63ID:u9qpXxTe >>138
仕事内容にもよるけどそんな事はない
なんせ世の中にはExcelのデータが糞ほどあるので
「Excelルールのcsvを正規表現で処理する+α」の仕事だけでも
たぶんそこらのリーマンよりは稼がせてもらってきたよ
日本の企業の大半は中小企業なわけだけど
ほんと信じられないほど無駄な事やってる会社がたくさんあるからね
こんな時間に2chなんてやってられるのも、そのお陰ですわ
仕事内容にもよるけどそんな事はない
なんせ世の中にはExcelのデータが糞ほどあるので
「Excelルールのcsvを正規表現で処理する+α」の仕事だけでも
たぶんそこらのリーマンよりは稼がせてもらってきたよ
日本の企業の大半は中小企業なわけだけど
ほんと信じられないほど無駄な事やってる会社がたくさんあるからね
こんな時間に2chなんてやってられるのも、そのお陰ですわ
141デフォルトの名無しさん
2017/05/31(水) 12:35:12.54ID:MQUo5X9j 万能な処理って得てして使いにくいしな
142デフォルトの名無しさん
2017/05/31(水) 12:44:32.50ID:gy6WrZsR143デフォルトの名無しさん
2017/05/31(水) 16:04:23.05ID:jFN45aLj144デフォルトの名無しさん
2017/05/31(水) 17:04:05.88ID:MQUo5X9j なぜrubyなのかよく分からん
多少正規表現エンジンの種類やバージョンの違いはあれど
正規表現はperlでもPHPでもJavaScriptでもPythonでも使えるし
rubyの正規表現なんて昔はコールバック処理するのがくそ面倒だった筈だが
多少正規表現エンジンの種類やバージョンの違いはあれど
正規表現はperlでもPHPでもJavaScriptでもPythonでも使えるし
rubyの正規表現なんて昔はコールバック処理するのがくそ面倒だった筈だが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
