[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
61: 2017/04/21(金)16:15 ID:hNfgTF//(1) AAS
GPLならいざ知らずPCREや鬼車, 鬼雲もBSDライセンスだからなぁ
誰か外部の高機能正規表現ライブラリを利用するプラグインとか作ってそうだけど
62(1): 2017/04/22(土)00:09 ID:R9IUk1ak(1) AAS
>>57
if ≠"+0900" みたいなやり方が1番簡単だけど正規表現だと面倒
≠ や = にまで拡張した正規表現があればいいんだ
63(1): 56 2017/04/22(土)01:50 ID:IwPPNWuo(1) AAS
>>56分かる方いたら教えてください
よろしくお願いします
64(1): 2017/04/22(土)04:17 ID:T741eTMO(1) AAS
ほらよ。使い物になるかは知らんが示された対象データにおいては要件を満たす
^(.{,4}|-0900|.{6,})$
量指定子の{}が使えないなら
^(.|..|...|....|-0900|......)$
Beckyの仕様が一般的なPerlの正規表現とは違うならここで聞いても分かるやつ少ないだろうし
後出しする必要が出たらBeckyの方で聞いた方がいいぞ
65(1): 2017/04/22(土)17:13 ID:1zuuifbC(1/2) AAS
>>63
+0900のみのデータなんて普通は無いよね
こういうのはJSTとかの時刻の後ろにつくもんじゃないの?
何がしたいのかよく解からないんだが?
フィルタで使うんなら、〜が「ある時」「ない時」と選択できるようだから、
「ない時」にチェックすれば君の要件どうりなら、指定は^+0900$でよいことになる(+0900のみがない時ということになるけど)
だけど、上で疑問視したように+0900の前に時刻があるならマッチしなくなるよ
66: 2017/04/22(土)17:16 ID:1zuuifbC(2/2) AAS
+のエスケープし忘れた(仕様にエスケープはあるよね?)
67: 56 ◆mUjtBupG2M 2017/04/22(土)21:58 ID:UjWxDTr1(1) AAS
レスくださったみなさんありがとうございます
>>58>>60
使えませんでした
>>59
そうなんです、基本的なものしかないのでどうすればいいのか分からず
>>62
ですね
>>64
使い物にならん!
>>65
省4
68(1): 2017/04/23(日)02:31 ID:hK6ntaQJ(1) AAS
Beckyって基本的なものとはいえ正規表現使えるのか、いいなぁ
会社で強制使用のOutlookなんか and or しかない上に
検索語を入力中に変なところで勝手にor区切りするわフォーカス外れるわでもうムチャクチャ
仕事で何年も前のメール探すのに絞り込めなくて、最終的には数百通人間grep状態しょっちゅう…
69: 2017/04/23(日)05:21 ID:DzF9wMLj(1/4) AAS
^(\+|-|-0900)(.?|..|...|([1-9].|.[0-8])..|..([1-9].|.[1-9])|.....+)$
70: 2017/04/23(日)05:33 ID:DzF9wMLj(2/4) AAS
^(.|-0900)(.?|..|...|(([1-9]|\D).|.([0-8]|\D))..|..(([1-9]|\D).|.([1-9]|\D))|.....+)$
71: 2017/04/23(日)05:44 ID:DzF9wMLj(3/4) AAS
^(.|-0900)(.?|..|...|([^0].|.[^9])..|..([^0].|.[^0])|.....+)$
72(1): 2017/04/23(日)05:52 ID:DzF9wMLj(4/4) AAS
^(-0900|.(.?|..|...|([^0].|.[^9])..|..([^0].|.[^0])|.....+))$
73(4): 2017/04/23(日)07:11 ID:2K1Rl01+(1) AAS
^[^+]*$|\+(|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
省2
74: 2017/04/23(日)14:27 ID:fsvPYIZO(1) AAS
>>68
wanderlust使ってて十分だがmaildirでファイル保存してるのでなんでもありだ
75: 56 ◆mUjtBupG2M 2017/04/23(日)22:57 ID:/2AcrhSu(1) AAS
>>72
質問に忠実な正規表現ありがとうございました
>>73
きゃー素敵!と冗談はさておき
まさに望んでいたものでした、本当にどうもありがとうございました!
76(2): 2017/04/28(金)19:19 ID:VBxbz7un(1/2) AAS
正規表現を勉強し始めた者です
>>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にマッチしてしまう
省17
77(1): 76 2017/04/28(金)19:24 ID:VBxbz7un(2/2) AAS
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
省14
78(1): 2017/04/29(土)18:45 ID:0PD6E3oz(1) AAS
>>76-77
どちらも深い意味はないよ
行き当たりばったりで何とかテストに通るようにしただけだから
> 3桁までの表現に0*としてるのはなぜなのでしょうか?
コメント付けてくれた通りまさしく「0〜3桁とその先頭に0が続くパターン」
という順序で考えてたから結果的にそうなったのだと思う
まず0から999に一致するパターンを書いて、それに 0 が先行する場合 0* を足して
でも 0900 には一致しないように… とかそんな感じ
> この2つは合わせて \+0[1-8][0-9][0-9] としてはダメなのでしょうか?
ダメじゃない
省6
79: 2017/04/30(日)00:11 ID:PxU3UZJt(1/3) AAS
>>78
回答ありがとうございます
つい先日覚え始めた身ながらも>>73さんの式に感銘を受け是非とも理解したく思い
分からない事だらけの中、自分であれこれ分解したり試したりしていたのですが
疑問に思った点を自力で晴らす事が出来ず質問させて頂きました
未熟故に不理解な部分があるのではないかと思っておりましたが
「どちらも深い意味はない」との事で少々肩透かしでしたが安心しました
無知故に身構え過ぎていたようです
作成の経緯や方法まで丁寧に説明して頂きありがとうございました
今後の参考にさせて頂きます。感謝!
80(3): 2017/04/30(日)03:04 ID:sTLetcQY(1) AAS
慇懃無礼でうぜえ
上下前次1-新書関写板覧索設栞歴
あと 922 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s