[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(5): 2017/03/15(水)02:04 ID:e01p03UP(1) AAS
Regular Expressionスレです。

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

前スレ
Regular Expression(正規表現) Part13
2chスレ:tech

次スレは>>980宜しく
天ぷら等2以降
2
(3): 2017/03/15(水)02:06 ID:ko4BTSP2(1/5) AAS
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
Java1.5

●検索か置換か?
検索

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

●対象データ
ABCA
BCAA
省9
3
(3): 2017/03/15(水)02:06 ID:ko4BTSP2(2/5) AAS
◆関連サイト
正規表現メモ
外部リンク[html]:www.kt.rim.or.jp
Perl正規表現雑技
外部リンク[htm]:www.din.or.jp
Regular Expression(Riue ちゃんの正規表現講座)
外部リンク:www.sixnine.net
正規表現パズル
外部リンク:www.geocities.jp
詳説 正規表現
省11
4
(2): 2017/03/15(水)02:07 ID:ko4BTSP2(3/5) AAS
◆関連スレ
[UNIX板] 正規表現
2chスレ:unix
[WebProg] 正規表現道場 Part2 ←板移転
2chスレ:php

◆前スレ
[1] 2chスレ:tech
[2] 2chスレ:tech
[3] 2chスレ:tech
[4] 2chスレ:tech
省9
5: 2017/03/15(水)02:08 ID:ko4BTSP2(4/5) AAS
鬼車
外部リンク[html]:www.geocities.jp
鬼雲
外部リンク:github.com

Boost.Regex(日本語訳)
外部リンク[pdf]:alpha.sourceforge.jp

秀丸: 複数行にまたがる検索について
外部リンク[html]:homepage2.nifty.com

サクラエディタ: 改行
外部リンク:d.hatena.ne.jp
省5
6: 2017/03/15(水)02:08 ID:5ViZ5KQR(1) AAS
387:名無し募集中。。。:2017/03/15(水) 02:01:25
以下依頼します。
よろしくお願いします(宣言してスレ立て規制に引っかかった)

【板名】 プログラム技術
【板URL】 2ch板:tech
【タイトル】 Regular Expression(正規表現) Part14
【名前(省略可)】
【メール欄(省略可)】
【本文】
Regular Expressionスレです。
省6
7: 2017/03/15(水)02:09 ID:ko4BTSP2(5/5) AAS
[ ある "文字列" を含まない正規表現 ]

▽ 先読みが使える環境

((?!xyz).)* または (?:(?!xyz).)*
後者はカッコによるキャプチャを無効化しています。
1文字以上の繰り返しにしたい場合は * を + に書き換えて下さい。

▽ 先読みが使えない環境

オートマトンの知識が不可欠なため初心者にはまず無理です。
解説サイトですらほとんどがデタラメな作成方法を載せています。
↓正しい作り方はこちら。
省7
8: 2017/03/15(水)08:53 ID:ZusWJMmJ(1) AAS
>>1

9: 2017/03/15(水)11:35 ID:7YWEdixI(1) AAS
どうでもいいけど deny は高校で習ったわ
10: 2017/03/15(水)15:17 ID:ARIh7/3F(1) AAS
習う習わないっていう材料はテキストに出てくるかどうかなのか?
(と言っても俺の時代学校によって採用するテキストの種類だって何種類もあったんだけど)
それともどっかの参考書も含むのか?
11: 2017/03/15(水)15:21 ID:JuWg/t11(1) AAS
私は中学校で習いましたよ
12
(1): 2017/03/15(水)16:23 ID:FiGu7lnE(1/2) AAS
Regexの発音
動画リンク[YouTube]
外部リンク:english.stackexchange.com
外部リンク:www.quora.com

英語圏でもhard g派とsoft g派が半々
俺は語呂がいいからsoft g派 カタカナにするとレジェックス
英語で発音するときはリージェックスのほうが近いけどね

gifをギフって読む人がいるのと同じ
13: 2017/03/15(水)18:00 ID:LExN6Gy2(1) AAS
ギットをジットと呼ぶ人もいるの?
14: 2017/03/15(水)19:10 ID:FiGu7lnE(2/2) AAS
それは略語じゃなくて元から英単語だからね
リーナスがジットって発音してたらそれが広まっただろうけど
15
(1): 2017/03/15(水)23:15 ID:GyMxol53(1) AAS
海外の動画見たら「SQL Server」を「シークルサーバー」って発音しててちょっと驚いた
16
(1): 2017/03/16(木)01:57 ID:y9TWt00W(1) AAS
>>15
そういえば昔、初めてRDBを学んだ頃
会社の先輩でSQLを「シークェル」て呼ぶ人いたわ
その人一人だけだったけど
17
(1): 2017/03/16(木)23:04 ID:SS9/9E5d(1) AAS
FAQ!
18: 2017/03/21(火)02:29 ID:5LrJtuWs(1) AAS
>>16
Fileをローマ字読みでフィレと読んでいる
MakeFileはマケフィレ
19
(1): 2017/03/23(木)06:22 ID:m0GWFz0v(1) AAS
外部リンク:patorjk.com
20: 2017/03/24(金)06:37 ID:J6kPEUuW(1) AAS
SQLの話まで行くともはやスレタイ関係ないじゃん、と思ったが>>19は面白かったわ
俺はsoft g、S-Q-Lで読んでるが、相手が先に違う読み方してたらそれに合わせてる
21: 2017/03/29(水)23:42 ID:CyM0OTMA(1) AAS
質問

詳説 正規表現 第2版 持ってるんだけど、 詳説 正規表現 第3版 との違いって何かある?
第3版の方は5000円もするから大差ないなら買わないでおきたい
22: 2017/03/30(木)00:21 ID:LEwdK5Fw(1/2) AAS
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.

って書いてるね
上に書いてる内容は目次の違い見ても分かるよ
23: 2017/03/30(木)00:39 ID:Z/GqZVkW(1/3) AAS
買おうと思ったけど、後ろ半分が自分に関係なくて買うのやめた。
24
(2): 2017/03/30(木)01:42 ID:1DorAGfX(1/2) AAS
失礼します。質問させていただきます。
複数行からなるデータを、指定したピッチ(行)おきに消したいのですが、やり方を教えて下さい!
例えば
中1行空けてなら1,3,5,7
中2行空けてなら1,4,7,10
中3行空けてなら1,5,9,13
の行を削除していくみたいな感じです。
出だしは1行目からでなくても、これは行の調整でなんとか出来そうです。
できるだけ手順が少ないのが理想です。やり方解る方マジ教えてほしいです!
手作業でやってて疲れてしました。まだいっぱいあります・・・お願いします。
25: 2017/03/30(木)02:07 ID:J79lEXio(1) AAS
それエディタのマクロでやること
26
(1): 2017/03/30(木)02:20 ID:7+t5IDTq(1) AAS
>>24
gawk
27: 2017/03/30(木)03:34 ID:Z/GqZVkW(2/3) AAS
何かスクリプトが使えるなら簡単だけど
正規表現だけでは難しそう
いらない行だけに含まれている
決まった文字、記号があるとか、またはその逆みたいな
いらない行を判断出来る要素があれば正規表現の検索置換で可能
28: 2017/03/30(木)04:00 ID:Z/GqZVkW(3/3) AAS
あそっか、上から3行づつとかで切っていけばいけるのか
明日試してみよっと。
29
(1): 2017/03/30(木)04:11 ID:LEwdK5Fw(2/2) AAS
中1行ずつに削除なら(.*)¥n.* を ¥1に置換
中2行ずるに削除なら(.*)¥n.*¥n.* を ¥1に置換
みたいな方法でできるけど
特別な理由が無い限りエディタのマクロ使うかスクリプト使うね
30: 2017/03/30(木)04:16 ID:UdsMclqE(1) AAS
正規表現でって言うけど何使うのかな?
Perl?
31: 24 2017/03/30(木)06:57 ID:1DorAGfX(2/2) AAS
AA省
32: 2017/04/01(土)03:40 ID:4EJbPXqm(1/2) AAS
(?i)((\S+ ){5}|^(\S+ ){0,5}?)(\bAAA\b)(( \S+){5}|( \S+){0,5}?$)

英文からある単語AAAを検索して前後5文字づつ一緒に取得
ただし途中に改行がある場合は改行前まで

上の表現で目的は達成したのですが
疑問が湧いたので質問です
A|Bのような単純またはではなくて
ifのような条件で切り替えるような正規表現はありますか?
(各種のスクリプト言語に依存しないやり方で)
合わせて、上の表現よりもこうした方が良いとかあったら
よろしくお願いします。
33
(1): 2017/04/01(土)03:45 ID:FRLTAWk8(1) AAS
外部リンク[html]:www.regular-expressions.info
外部リンク[html]:www.rexegg.com
34: 2017/04/01(土)10:44 ID:4EJbPXqm(2/2) AAS
>>33
ありがとうございます!
35
(1): 2017/04/02(日)20:30 ID:g6KuPxH9(1/2) AAS
ファイル名の置換(linuxのrenameコマンド)で
rename パール正規表現 対象ファイルで置換が出来るみたいです。

test_20140402_1810.m4aをtest_20140402.m4aに"_1800"を削除したいのですが、
rename 's/_d{4}\.m4a$/\.m4a/' test_20170402_1810.m4a
としてもうまく行かずにエラーも出ずにファイル名も変わりません。

"_"+"数字4桁"+".m4a"にマッチするようにして".m4a"に置換すればいいかと思ったのに出来ていない。
何処が間違ってますか?
36: 2017/04/02(日)20:41 ID:TvISwdcG(1) AAS
>>35
dのところのエスケープ
あと置換文字列はピリオドにエスケープいらない
マッチしないだけだからエラーがでなくてもおかしくない
37: 2017/04/02(日)22:31 ID:g6KuPxH9(2/2) AAS
ありがと。うまく行ったよ。
38
(2): 2017/04/12(水)19:00 ID:QHemYrmG(1/2) AAS
正規表現で任意文字以外を消すにはどうしたらいいですか?
検索でヒットしたものだけ残したいということです。
よろしくおねがいします。
39
(1): 2017/04/12(水)20:59 ID:u8woYKAJ(1/2) AAS
>>38
漠然とした質問だから漠然としか答えられないけど
キーワードを含む文全体(先頭から末尾まで)をマッチさせて
それをキーワードに置換させればいい
40
(2): 2017/04/12(水)21:00 ID:ud+oociV(1) AAS
[^(abc)]
これでabc以外の文字が全部選択できる
でもこれってどういう時に使うんだろう?
結局残るのがabcだけなら
わざわざ検索しなくてもよさそうだけど
41: 2017/04/12(水)21:12 ID:u8woYKAJ(2/2) AAS
>>40
なんか勘違いしてそうな記述なんだけど?
それは、(,a,b,c,)の5文字以外の1文字を表してる
文字列abc以外を表すのなら
(?:(?!abc).)
42: 2017/04/12(水)21:52 ID:ixmoPw8q(1) AAS
Ruby 2.4.1で使えるようになった非包含オペレータ便利
外部リンク:qiita.com
43
(1): 38 2017/04/12(水)22:16 ID:QHemYrmG(2/2) AAS
>>39>>40
レスをありがとうございます。
やろうとしてたのは下記例のような場合で、-で直接挟まれた文字のみ残したいというものです。

消-残-残--消 -残--消 -残-
消--残--消 -消 -残-
44
(1): 2017/04/13(木)05:45 ID:Bx+Z85rt(1) AAS
- と - の間の文字列で空白文字が入っちゃいかんということならこんな感じ?

perl -ne 'print( /(?<=-)([^-\s]+)(?=-)/g ,"\n")'

こういうことじゃないならもう少し説明を。
45
(1): 43 2017/04/14(金)03:41 ID:8AuQ8qy9(1) AAS
>>44
レスをいただきありがとうございます。教えて頂いた記述はPerlということであってますよね?
Perlを導入して使ってみてからレスをお返ししようといろいろ調べていたら、大変遅れてしまい礼を欠いてしました。
いろんなサイトを見過ぎたせいか、結局導入方法が絞れないというか、よくわからなくり、
時間だけが過ぎましたので不甲斐なく申し訳ないですが兎に角お礼まで。どうもありがとうございました。
46
(1): 2017/04/14(金)08:15 ID:mEmX7gnv(1) AAS
ブラウザから実行すれば、簡単

paiza.IO, codepad なら、ログインもいらない
47
(1): 2017/04/14(金)09:03 ID:uldWbSLb(1) AAS
>>45
とりあえず>>1-2を嫁
48
(1): 2017/04/14(金)11:21 ID:7lZUeeAF(1) AAS
置換でやるとすると、これでどうかな?
これなら適当なエディタやWSH(JScript)ででも実行できる
(先頭の.*?を[\s\S]*?に変えれば、改行コードは末尾のみになる)
ただ、もしかすると考慮抜けの場合があるかも

正規表現:/.*?-([^\s-]+)(?=-)|-*[^-]*?(\r)?$/mg
置換文字:$1$2
49
(1): 2017/04/15(土)02:46 ID:8aYCgh5m(1/2) AAS
レスをくださった方々、また遅くなりましたがありがとうございます。
>>46
こんな便利なものがあるんですね!教えていただきありがとうございます。またゆっくり触ってみたいとおもいます。
>>47
質問方法の不備を自覚しました。以後気を付けます。申し訳ありません。
>>48
サクラエディタで希望どうりの置換えが出来ました。本当にありがとうございます。
たて続けになり申し訳ないのですが。できればもう一つお聞きしたいです。
下記のような英文やその他も、単語と単語の間に入る半角スペースを許容することは可能でしょうか?
-Good Morning-
省3
50
(1): 2017/04/15(土)09:28 ID:7fUWShMv(1/5) AAS
>>49
それは別件なのか?
-a -b-
の場合、その条件なら
a b
が残ることになるけど?
それでいいなら、\sを抜くだけでもいいし、(?=-)も取ってもいい
51
(1): 2017/04/15(土)10:02 ID:7fUWShMv(2/5) AAS
ごめん、「間に入る」だったのか
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?\r?$/mg
$1
52
(1): 2017/04/15(土)10:07 ID:7fUWShMv(3/5) AAS
\rもいらないか
/.*?-((?:[^-\s]| )*[^-\s])(?=-)|-*[^-]*?$/mg
53
(1): 2017/04/15(土)10:21 ID:7fUWShMv(4/5) AAS
これじゃまずい
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?=[^-])|-*[^-]*$/mg
冗長かもしれない
54
(1): 2017/04/15(土)10:24 ID:7fUWShMv(5/5) AAS
↑でも問題ないけど
/.*?-((?:[^\s-]| )*[^\s-])(?=-)|.*-(?:[^\s-]| )*[^\s-](?!-)|-*[^-]*$/mg
55: 2017/04/15(土)11:39 ID:8aYCgh5m(2/2) AAS
>>50-54
無理を利いてくださりありがとうございます。
実は最初の質問に穴があったので別件という形で再質問させていただきました。失礼しました。
教えて頂いた記述は完璧でした本当に感謝です!
レスも何度もくださってこの度は大変お世話になりました。
56
(2): 2017/04/20(木)21:29 ID:rsUIJG5Q(1/2) AAS
●Regular Expressionの使用環境
Becky!

●検索か置換か?
検索

●説明
+0900以外に一致

●対象データ
+
-
+0
省11
57
(1): 2017/04/20(木)21:30 ID:rsUIJG5Q(2/2) AAS
+
-
+0
-0
+09
-09
+090
-090

-0900
+09000
省5
58
(1): 2017/04/21(金)08:10 ID:P/4d/uOg(1/2) AAS
Beckyで使えるかは知らんけど
^(?!\+0900$).*
59
(1): 2017/04/21(金)12:02 ID:30M0P9UI(1) AAS
zip版をダウロードしてchmヘルプファイルを見てみたら、
正規表現は本当に基本的なものしか無かった
(?!)はおろか()とかのキャプチャ自体無い(括弧は優先順位が上になるだけ)
[abc-d]もダメ( ([ab]|[c-d])と分けて書くらしい)
だから、やるなら
^[^+]|^\+$|^\+[^0]|^\+0]$|^\+0[^9]|…と全ての場合を併記するしかないかも
60
(1): 2017/04/21(金)14:10 ID:P/4d/uOg(2/2) AAS
鬼車や鬼雲使わず独自実装なんだね。シェアウェアだからかな
非包含か先読みを使えなきゃ実質無理だと思う
^\+0900$ の方をどうにかする運用を考えた方が良い
Beckyの公式のメーリングリストや掲示板で正規表現じゃなく具体的にやりたい事を質問してみたら?
上手い運用方法を思い付いてくれる人が居るかも
61: 2017/04/21(金)16:15 ID:hNfgTF//(1) AAS
GPLならいざ知らずPCREや鬼車, 鬼雲もBSDライセンスだからなぁ
誰か外部の高機能正規表現ライブラリを利用するプラグインとか作ってそうだけど
1-
あと 941 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s