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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
199: 2017/06/16(金)00:03:22.93 ID:ugmLNmLC(1/2) AAS
まさのりって誰よ?
355
(1): 2017/12/01(金)01:38:11.93 ID:4kQewCo+(1) AAS
([\w\d._-]+?@uvw-xyz\.com, ){2,}[\w\d._-]+?@uvw-xyz\.com
冗長だけど、とりあえずこれならどのアプリでも動くはず
409
(1): 2018/01/16(火)18:31:44.93 ID:1yOH1J8J(2/3) AAS
Ruby では、先頭から、% を探して、それ以降を削除する

str = '/dir/desktop.inib%01%EE%81'
pos = str.index('%')

if pos
str = str.slice(0...pos)
end

puts str

結果
/dir/desktop.inib
425
(2): 421 2018/02/16(金)15:30:22.93 ID:mPXTHkFg(1/2) AAS
>>424
文中は消えていいんじゃない?

>>420
> [うう][ええ]そそそそそ
> そそそそそ

ってあるし
あ、

> ※先頭じゃない文中の[はは]は残したい

この[はは]はマッチしたらダメなのか
これ例の中においてくんないかなー
というか定義がよくわからんちん

^\[.*\](?!$)
ところによっては(?<=(?:^|\n))\[.*\](?!(?:\n|$))

マッチ
[ああ]おおおおお
[いいい]こここここ
[うう][ええ]そそそそそ
[たた]ななはは[まま]やや
→[たた]ななはは[まま]
[たた]ななははまま[やや]
→[たた]

アンマッチ
ととととと[たた]
ちち[はは]ぱぱまま
493: 2018/04/11(水)13:14:45.93 ID:p/bo/Ju1(1) AAS
試しに Perl でやってみた。最も楽観的な想定ならこのくらいまでは手抜きできる。

use strict;
my $comment = qr/(?:--.*?\n)/ ;
my $literal_ch = qr/(?:\'\'|[^\'])/ ;
my $ch_str_literal = qr/(?:\'(?>$literal_ch*)\')/ ;
my $other_ch = qr/[^\';]/ ;
my $some_str = qr/(?:$comment|$ch_str_literal|$other_ch)/ ;
my $statement = qr/(?:$some_str*;)/ ;
my $text = '';
while (<>){ $text .= $_; while ( $text =~ s/^$statement// ){ print("Found:$&\n") }}

文字列リテラルの中の文字の記法に特に対処すべき拡張があるなら $literal_ch に加えれば良い。
" は識別子を書くためのものだが '、;、-- のどれかが入る可能性があるなら $other_ch と $some_str に加えればいいだろう。
多分、問題はそこではない。この例では行単位の入力だから面倒な問題を回避できているが、そうでない場合の問題だ。
たとえばコメントの始まりの - までしか読まれていないという場合。もっと読まなければコメントかどうか判断できない。
あるいは文字列リテラルの中で ' が現れた場合。それは文字列リテラルの終わりなのか、それともリテラルの ' を表す '' の 1 文字目なのか。
こういう処理を自分で書くのは難しくはなくても面倒だし、処理速度も遅い。だから結局 flex を使ったりする。
517
(1): 2018/05/25(金)21:21:37.93 ID:lQiYp+1p(1) AAS
鬼雲限定
<a (?~</a>)<img src="([^"]+)"[^>]*>(?~<a )</a>
568: 2018/08/24(金)03:56:55.93 ID:k/tOxHF9(1/2) AAS
>>567
鬼雲使ってみれば?
676
(1): 2018/10/25(木)15:23:45.93 ID:RdSksp9Y(1/2) AAS
>>675
正規表現はプログラム言語や正規表現オブジェクトのオプションによって
動作がけっこう変化するので質問するときはそういうの書いてね

[^/]+(?:/[^/]+)?

ただしこれは正しいパスが与えられることを前提としているので注意
699: 2018/11/01(木)17:25:34.93 ID:+M+OiFJp(2/4) AAS
(*^-^*)
892
(1): 2019/07/17(水)09:46:24.93 ID:u050lnGw(1/3) AAS
話を単純化すると、
1. ある文字、例えば@ から、次の@ の直前の文字まで
2. 先頭が、@ でなければ、先頭から、@ の直前の文字まで。
つまり、先頭が、@ でなければ、先頭文字を、@ とみなして処理する

つまり、ルール1・2は、同時に適用させず、先にルール1を適用し、
ルール1に適用しないものだけを、ルール2に使う

(^|[@;])[^@;]*

だから、この正規表現がおかしい。
定義があいまいになる、解釈を含んでいる!

OR の部分が、並列ではない。
ルール1を優先すべき!
944: 2019/09/12(木)09:22:01.93 ID:TOasMGF3(1/4) AAS
●Regular Expressionの使用環境
Mery

●検索か置換か?
置換

●説明
属性内のアルファベット小文字を削除

●対象データ
id="105I42b 104I41b"
id="99E65e 95B43d 92B87d"
id="97B22d 95D18a 93B22c 93E23b"

●希望する結果
id="105I42 104I41"
id="99E65 95B43 92B87"
id="97B22 95D18 93B22 93E23"

id="((\d+[A-Z]\d+)[a-z] ?){2,}"で検索は出来たのですが置換が思い浮かびません
957: 2019/09/12(木)23:14:33.93 ID:Uy9QyXie(1) AAS
ありがとうございます!
rubyの一件って何ですか?(何て検索したらいいですか?)
978: 2019/09/16(月)17:34:55.93 ID:hRvCpxCQ(1) AAS
>>976
そう言うのは質問者に適宜やってもらえば良い
絶対マッチするという前提かもしれないし
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s