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:e01p03UP2017/03/15(水) 02:06:40.55ID:ko4BTSP2
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
2017/03/15(水) 02:06:57.31ID:ko4BTSP2
◆関連サイト
正規表現メモ
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/
クックブック ←追加
鬼車、鬼雲 ←追加
正規表現メモ
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/
クックブック ←追加
鬼車、鬼雲 ←追加
2017/03/15(水) 02:07:49.24ID:ko4BTSP2
◆関連スレ
[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/
[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/
2017/03/15(水) 02:08:13.70ID:ko4BTSP2
鬼車
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/
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/
2017/03/15(水) 02:08:24.61ID:5ViZ5KQR
387:名無し募集中。。。:2017/03/15(水) 02:01:25
以下依頼します。
よろしくお願いします(宣言してスレ立て規制に引っかかった)
【板名】 プログラム技術
【板URL】 http://echo.2ch.net/tech/
【タイトル】 Regular Expression(正規表現) Part14
【名前(省略可)】
【メール欄(省略可)】
【本文】
Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
以下依頼します。
よろしくお願いします(宣言してスレ立て規制に引っかかった)
【板名】 プログラム技術
【板URL】 http://echo.2ch.net/tech/
【タイトル】 Regular Expression(正規表現) Part14
【名前(省略可)】
【メール欄(省略可)】
【本文】
Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
2017/03/15(水) 02:09:35.98ID:ko4BTSP2
[ ある "文字列" を含まない正規表現 ]
▽ 先読みが使える環境
((?!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
▽ 先読みが使える環境
((?!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
8デフォルトの名無しさん
2017/03/15(水) 08:53:37.66ID:ZusWJMmJ >>1
乙
乙
2017/03/15(水) 11:35:18.29ID:7YWEdixI
どうでもいいけど deny は高校で習ったわ
2017/03/15(水) 15:17:17.33ID:ARIh7/3F
習う習わないっていう材料はテキストに出てくるかどうかなのか?
(と言っても俺の時代学校によって採用するテキストの種類だって何種類もあったんだけど)
それともどっかの参考書も含むのか?
(と言っても俺の時代学校によって採用するテキストの種類だって何種類もあったんだけど)
それともどっかの参考書も含むのか?
11デフォルトの名無しさん
2017/03/15(水) 15:21:02.26ID:JuWg/t11 私は中学校で習いましたよ
2017/03/15(水) 16:23:05.39ID:FiGu7lnE
Regexの発音
https://www.youtube.com/watch?v=PGZldvNL2rw
http://english.stackexchange.com/questions/94371/
https://www.quora.com/What-is-the-correct-way-to-pronounce-regex
英語圏でもhard g派とsoft g派が半々
俺は語呂がいいからsoft g派 カタカナにするとレジェックス
英語で発音するときはリージェックスのほうが近いけどね
gifをギフって読む人がいるのと同じ
https://www.youtube.com/watch?v=PGZldvNL2rw
http://english.stackexchange.com/questions/94371/
https://www.quora.com/What-is-the-correct-way-to-pronounce-regex
英語圏でもhard g派とsoft g派が半々
俺は語呂がいいからsoft g派 カタカナにするとレジェックス
英語で発音するときはリージェックスのほうが近いけどね
gifをギフって読む人がいるのと同じ
2017/03/15(水) 18:00:46.15ID:LExN6Gy2
ギットをジットと呼ぶ人もいるの?
2017/03/15(水) 19:10:20.88ID:FiGu7lnE
それは略語じゃなくて元から英単語だからね
リーナスがジットって発音してたらそれが広まっただろうけど
リーナスがジットって発音してたらそれが広まっただろうけど
2017/03/15(水) 23:15:08.29ID:GyMxol53
海外の動画見たら「SQL Server」を「シークルサーバー」って発音しててちょっと驚いた
2017/03/16(木) 01:57:00.56ID:y9TWt00W
2017/03/16(木) 23:04:01.82ID:SS9/9E5d
FAQ!
2017/03/21(火) 02:29:10.44ID:5LrJtuWs
2017/03/23(木) 06:22:49.19ID:m0GWFz0v
2017/03/24(金) 06:37:22.44ID:J6kPEUuW
SQLの話まで行くともはやスレタイ関係ないじゃん、と思ったが>>19は面白かったわ
俺はsoft g、S-Q-Lで読んでるが、相手が先に違う読み方してたらそれに合わせてる
俺はsoft g、S-Q-Lで読んでるが、相手が先に違う読み方してたらそれに合わせてる
21デフォルトの名無しさん
2017/03/29(水) 23:42:35.49ID:CyM0OTMA 質問
詳説 正規表現 第2版 持ってるんだけど、 詳説 正規表現 第3版 との違いって何かある?
第3版の方は5000円もするから大差ないなら買わないでおきたい
詳説 正規表現 第2版 持ってるんだけど、 詳説 正規表現 第3版 との違いって何かある?
第3版の方は5000円もするから大差ないなら買わないでおきたい
2017/03/30(木) 00:21:57.35ID:LEwdK5Fw
This third edition features enhanced PHP coverage in the early chapters,
plus an all new, expansive chapter devoted entirely to PHP regular expressions and how to wield them effectively.
Also new in this edition, the Java chapter has been rewritten and expanded considerably to reflect new features of Java 1.5 and Java 1.6.
って書いてるね
上に書いてる内容は目次の違い見ても分かるよ
plus an all new, expansive chapter devoted entirely to PHP regular expressions and how to wield them effectively.
Also new in this edition, the Java chapter has been rewritten and expanded considerably to reflect new features of Java 1.5 and Java 1.6.
って書いてるね
上に書いてる内容は目次の違い見ても分かるよ
2017/03/30(木) 00:39:32.58ID:Z/GqZVkW
買おうと思ったけど、後ろ半分が自分に関係なくて買うのやめた。
2017/03/30(木) 01:42:52.91ID:1DorAGfX
失礼します。質問させていただきます。
複数行からなるデータを、指定したピッチ(行)おきに消したいのですが、やり方を教えて下さい!
例えば
中1行空けてなら1,3,5,7
中2行空けてなら1,4,7,10
中3行空けてなら1,5,9,13
の行を削除していくみたいな感じです。
出だしは1行目からでなくても、これは行の調整でなんとか出来そうです。
できるだけ手順が少ないのが理想です。やり方解る方マジ教えてほしいです!
手作業でやってて疲れてしました。まだいっぱいあります・・・お願いします。
複数行からなるデータを、指定したピッチ(行)おきに消したいのですが、やり方を教えて下さい!
例えば
中1行空けてなら1,3,5,7
中2行空けてなら1,4,7,10
中3行空けてなら1,5,9,13
の行を削除していくみたいな感じです。
出だしは1行目からでなくても、これは行の調整でなんとか出来そうです。
できるだけ手順が少ないのが理想です。やり方解る方マジ教えてほしいです!
手作業でやってて疲れてしました。まだいっぱいあります・・・お願いします。
2017/03/30(木) 02:07:11.97ID:J79lEXio
それエディタのマクロでやること
2017/03/30(木) 02:20:39.52ID:7+t5IDTq
>>24
gawk
gawk
2017/03/30(木) 03:34:41.36ID:Z/GqZVkW
何かスクリプトが使えるなら簡単だけど
正規表現だけでは難しそう
いらない行だけに含まれている
決まった文字、記号があるとか、またはその逆みたいな
いらない行を判断出来る要素があれば正規表現の検索置換で可能
正規表現だけでは難しそう
いらない行だけに含まれている
決まった文字、記号があるとか、またはその逆みたいな
いらない行を判断出来る要素があれば正規表現の検索置換で可能
2017/03/30(木) 04:00:51.53ID:Z/GqZVkW
あそっか、上から3行づつとかで切っていけばいけるのか
明日試してみよっと。
明日試してみよっと。
2017/03/30(木) 04:11:47.74ID:LEwdK5Fw
中1行ずつに削除なら(.*)¥n.* を ¥1に置換
中2行ずるに削除なら(.*)¥n.*¥n.* を ¥1に置換
みたいな方法でできるけど
特別な理由が無い限りエディタのマクロ使うかスクリプト使うね
中2行ずるに削除なら(.*)¥n.*¥n.* を ¥1に置換
みたいな方法でできるけど
特別な理由が無い限りエディタのマクロ使うかスクリプト使うね
2017/03/30(木) 04:16:57.88ID:UdsMclqE
正規表現でって言うけど何使うのかな?
Perl?
Perl?
3124
2017/03/30(木) 06:57:32.87ID:1DorAGfX レスを頂い方々どうもありがとうございます。エディタのマクロでやる方がいいのですか!
これはいいことを知りました!マクロ使ったことないですがこの次に勉強してみようと思います。
>>29さん
教えて頂いた正規表現で出来ました!これでマジ助かります\(^o^)/
どうもありがとうございました。\(^o^)/
これはいいことを知りました!マクロ使ったことないですがこの次に勉強してみようと思います。
>>29さん
教えて頂いた正規表現で出来ました!これでマジ助かります\(^o^)/
どうもありがとうございました。\(^o^)/
2017/04/01(土) 03:40:09.20ID:4EJbPXqm
(?i)((\S+ ){5}|^(\S+ ){0,5}?)(\bAAA\b)(( \S+){5}|( \S+){0,5}?$)
英文からある単語AAAを検索して前後5文字づつ一緒に取得
ただし途中に改行がある場合は改行前まで
上の表現で目的は達成したのですが
疑問が湧いたので質問です
A|Bのような単純またはではなくて
ifのような条件で切り替えるような正規表現はありますか?
(各種のスクリプト言語に依存しないやり方で)
合わせて、上の表現よりもこうした方が良いとかあったら
よろしくお願いします。
英文からある単語AAAを検索して前後5文字づつ一緒に取得
ただし途中に改行がある場合は改行前まで
上の表現で目的は達成したのですが
疑問が湧いたので質問です
A|Bのような単純またはではなくて
ifのような条件で切り替えるような正規表現はありますか?
(各種のスクリプト言語に依存しないやり方で)
合わせて、上の表現よりもこうした方が良いとかあったら
よろしくお願いします。
2017/04/01(土) 03:45:05.14ID:FRLTAWk8
2017/04/01(土) 10:44:34.81ID:4EJbPXqm
>>33
ありがとうございます!
ありがとうございます!
2017/04/02(日) 20:30:31.43ID:g6KuPxH9
ファイル名の置換(linuxのrenameコマンド)で
rename パール正規表現 対象ファイルで置換が出来るみたいです。
test_20140402_1810.m4aをtest_20140402.m4aに"_1800"を削除したいのですが、
rename 's/_d{4}\.m4a$/\.m4a/' test_20170402_1810.m4a
としてもうまく行かずにエラーも出ずにファイル名も変わりません。
"_"+"数字4桁"+".m4a"にマッチするようにして".m4a"に置換すればいいかと思ったのに出来ていない。
何処が間違ってますか?
rename パール正規表現 対象ファイルで置換が出来るみたいです。
test_20140402_1810.m4aをtest_20140402.m4aに"_1800"を削除したいのですが、
rename 's/_d{4}\.m4a$/\.m4a/' test_20170402_1810.m4a
としてもうまく行かずにエラーも出ずにファイル名も変わりません。
"_"+"数字4桁"+".m4a"にマッチするようにして".m4a"に置換すればいいかと思ったのに出来ていない。
何処が間違ってますか?
2017/04/02(日) 20:41:25.41ID:TvISwdcG
2017/04/02(日) 22:31:46.58ID:g6KuPxH9
ありがと。うまく行ったよ。
2017/04/12(水) 19:00:37.87ID:QHemYrmG
正規表現で任意文字以外を消すにはどうしたらいいですか?
検索でヒットしたものだけ残したいということです。
よろしくおねがいします。
検索でヒットしたものだけ残したいということです。
よろしくおねがいします。
2017/04/12(水) 20:59:49.88ID:u8woYKAJ
2017/04/12(水) 21:00:35.18ID:ud+oociV
[^(abc)]
これでabc以外の文字が全部選択できる
でもこれってどういう時に使うんだろう?
結局残るのがabcだけなら
わざわざ検索しなくてもよさそうだけど
これでabc以外の文字が全部選択できる
でもこれってどういう時に使うんだろう?
結局残るのがabcだけなら
わざわざ検索しなくてもよさそうだけど
2017/04/12(水) 21:12:14.06ID:u8woYKAJ
2017/04/12(水) 21:52:20.74ID:ixmoPw8q
Ruby 2.4.1で使えるようになった非包含オペレータ便利
http://qiita.com/k-takata/items/4e45121081c83d3d5bfd
http://qiita.com/k-takata/items/4e45121081c83d3d5bfd
4338
2017/04/12(水) 22:16:13.87ID:QHemYrmG >>39>>40
レスをありがとうございます。
やろうとしてたのは下記例のような場合で、-で直接挟まれた文字のみ残したいというものです。
消-残-残--消 -残--消 -残-
消--残--消 -消 -残-
レスをありがとうございます。
やろうとしてたのは下記例のような場合で、-で直接挟まれた文字のみ残したいというものです。
消-残-残--消 -残--消 -残-
消--残--消 -消 -残-
44デフォルトの名無しさん
2017/04/13(木) 05:45:19.12ID:Bx+Z85rt - と - の間の文字列で空白文字が入っちゃいかんということならこんな感じ?
perl -ne 'print( /(?<=-)([^-\s]+)(?=-)/g ,"\n")'
こういうことじゃないならもう少し説明を。
perl -ne 'print( /(?<=-)([^-\s]+)(?=-)/g ,"\n")'
こういうことじゃないならもう少し説明を。
4543
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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★2 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- インバウンド激減…「何のための円安なのか」 [667744927]
- 高市早苗「つい言い過ぎた」公邸で一人ひきこもる😲 [861717324]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- 中国「水産物輸入停止は高市首相の発言が理由」 [256556981]
- 高市はわかっていない、発言撤回や中国に謝罪してもネトウヨは「さすが!」「実を取った!」と持て囃してくれることを [452836546]
- 中国「次に禁止してほしいものを教えて」 [358382861]
