Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/
次スレは>>980宜しく
天ぷら等>>2以降
探検
Regular Expression(正規表現) Part15
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/09/16(月) 22:25:11.87ID:enU8we0d2019/09/16(月) 22:25:47.75ID:enU8we0d
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
2019/09/16(月) 22:45:50.99ID:UVYTIEdn
◆関連サイト
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
詳説 正規表現
http://www.oreilly.co.jp/books/9784873113593/
正規表現クックブック
http://www.oreilly.co.jp/books/9784873114507/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
.NET Framework の正規表現 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions
正規表現 - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
鬼車
http://www.geocities.jp/kosako3/oniguruma/index_ja.html
鬼雲
https://github.com/k-takata/Onigmo
Boost.Regex 1.45.0 (日本語訳)
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.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
詳説 正規表現
http://www.oreilly.co.jp/books/9784873113593/
正規表現クックブック
http://www.oreilly.co.jp/books/9784873114507/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
.NET Framework の正規表現 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions
正規表現 - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
鬼車
http://www.geocities.jp/kosako3/oniguruma/index_ja.html
鬼雲
https://github.com/k-takata/Onigmo
Boost.Regex 1.45.0 (日本語訳)
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
※ サクラエディタでは複数行に渡る検索・置換は出来ません。
2019/09/17(火) 01:53:27.68ID:JrU+31ml
正規表現技術入門
https://gihyo.jp/book/2015/978-4-7741-7270-5
↑の著者の一人であり Onigmo の作者でもあるtakata先生のツイ
https://twitter.com/k_takata
https://twitter.com/5chan_nel (5ch newer account)
https://gihyo.jp/book/2015/978-4-7741-7270-5
↑の著者の一人であり Onigmo の作者でもあるtakata先生のツイ
https://twitter.com/k_takata
https://twitter.com/5chan_nel (5ch newer account)
2019/09/17(火) 07:00:40.77ID:Au9Vzrnr
>>1-2
乙
乙
2019/09/21(土) 18:08:57.67ID:oqO8j0PL
●Regular Expressionの使用環境
サクラエディタ bregoning.dll ver 3.06という記載があります
●検索か置換か?
置換
●説明
うしろに数字を付けたい。
あ
というのを
/(^.*)/$1/ で置き換えると
あ
になります(変わらない)。
これを、あ→あ00にするために
/(^.*)/$100/ とはできません。
$1等の直後に、数字を付け足すためにはどのように
表現したらよいか教えてください。
元の行の末尾に付け足すとは限らないので、
$1(実際はもっと多いのですが・・)の直後に数字を付け足す方法をお教えください。
サクラエディタ bregoning.dll ver 3.06という記載があります
●検索か置換か?
置換
●説明
うしろに数字を付けたい。
あ
というのを
/(^.*)/$1/ で置き換えると
あ
になります(変わらない)。
これを、あ→あ00にするために
/(^.*)/$100/ とはできません。
$1等の直後に、数字を付け足すためにはどのように
表現したらよいか教えてください。
元の行の末尾に付け足すとは限らないので、
$1(実際はもっと多いのですが・・)の直後に数字を付け足す方法をお教えください。
2019/09/21(土) 19:27:26.83ID:3YukOVDp
2019/09/21(土) 20:16:26.14ID:oqO8j0PL
9デフォルトの名無しさん
2019/10/03(木) 17:59:43.15ID:WLIOnQPh 正規表現クロスワードパズル。めっちゃおもろいww
https://regexcrossword.com/
https://regexcrossword.com/
2019/10/03(木) 22:01:07.23ID:ArP3YJIm
解き方がわかんねぇ・・・
https://regexcrossword.com/challenges/beginner/puzzles/1
[^SPEAK]+
HE|LL|O+
が交わるマスがなんで、Hになるんだ
https://regexcrossword.com/challenges/beginner/puzzles/1
[^SPEAK]+
HE|LL|O+
が交わるマスがなんで、Hになるんだ
2019/10/03(木) 22:18:27.45ID:gZNTfFgd
クロスワードの基本ルールと同様に各マス1文字だが、通常と異なり各ラインが単語になるとは限らない
縦のラインを横ラインをそれぞれ検索対象のテキストと見做して両方がマッチすればOK
ちなみに1回で1ライン全てにマッチする必要は無くて複数回検索して全マスにマッチする形でも良いみたい
縦のラインを横ラインをそれぞれ検索対象のテキストと見做して両方がマッチすればOK
ちなみに1回で1ライン全てにマッチする必要は無くて複数回検索して全マスにマッチする形でも良いみたい
2019/10/03(木) 22:25:40.75ID:TCa0Rrk0
2019/10/03(木) 22:54:32.85ID:ArP3YJIm
2019/10/04(金) 23:39:05.24ID:FCfJ1C/v
全制覇した。疲れた。本来はもっとのんびり楽しむものだよな。
15デフォルトの名無しさん
2019/10/05(土) 09:26:56.80ID:oVPf95FK すげえ!高難易度のやつ歯が立たないわ
2019/10/05(土) 16:01:21.83ID:8eaxbCO5
2019/10/05(土) 16:35:39.41ID:+ss/CUcr
アカウント持ってないから login はできないけど
自分が解いた結果はまだ見られるな。
クッキーを削除したら見られなくなるんだろうか。
自分が解いた結果はまだ見られるな。
クッキーを削除したら見られなくなるんだろうか。
18デフォルトの名無しさん
2019/10/05(土) 16:44:21.25ID:0WeqN8Y02019/10/05(土) 23:37:56.24ID:rOar3xCR
テキストエディタで試したら全27ラインマッチする状態になってるのに正解にならんなあ
2019/10/06(日) 00:08:45.90ID:IBgflZCa
どうもブラウザのせいだったようで、同じ内容を普段使ってないChromeで試したら正解扱いになった、よかった
作った人は凄いけど、解くのは1個1個できるところから埋め、条件を少しずつ絞りこんで行けば案外見た目ほど難しくはない
正規表現の可変長の書式の影響でクロスワードよりピクロスを解く感覚に似てる気がするのでその辺やってた人はちょっと有利かも
あと記憶力に余程の自身がなければ、ちょっと大きめに印刷して各マスに細かい条件を書きながらやったら大分楽になると思う
作った人は凄いけど、解くのは1個1個できるところから埋め、条件を少しずつ絞りこんで行けば案外見た目ほど難しくはない
正規表現の可変長の書式の影響でクロスワードよりピクロスを解く感覚に似てる気がするのでその辺やってた人はちょっと有利かも
あと記憶力に余程の自身がなければ、ちょっと大きめに印刷して各マスに細かい条件を書きながらやったら大分楽になると思う
2019/10/06(日) 12:02:16.89ID:ONMi4OJn
●Regular Expressionの使用環境
※テキスト(csv)を成型するという目的なので、なんでもいいです。
フリー(ネットからDL可能)なものであれば環境を作ります。
●検索か置換か?
置換
●説明
csvファイルの第4フィールドに説明文的なものが入ってます。
ここに半角カンマが紛れています。これを全角文字(、)に置き換えたい。
第4フィールドにいくつカンマがあるかは不定です。(0の場合もあれば、2個、3個、場合によっては10個、それ以上など)
第4フィールド以外は種類は多いのですが特定の文字が入ります。また第4フィールド以外はカンマは入っていません。
各行のフィールド数は固定です。(実際は20フィールドあるのですが、省略のため5フィールドにしてます)
●対象データ
Field1,Field2,Field3,ここは説明文,Field5
Field1,Field2,Field3,説明文です,Field5
Field1,Field2,Field3,ここは説明文,ですよ,Field5
Field1,Field2,Field3,説明してる,フィールドですよ,Field5
●希望する結果
Field1,Field2,Field3,ここは説明文,Field5
Field1,Field2,Field3,説明文です,Field5
Field1,Field2,Field3,ここは説明文、ですよ,Field5
Field1,Field2,Field3,説明してる、フィールドですよ,Field5
よろしくお願いいたします。
※テキスト(csv)を成型するという目的なので、なんでもいいです。
フリー(ネットからDL可能)なものであれば環境を作ります。
●検索か置換か?
置換
●説明
csvファイルの第4フィールドに説明文的なものが入ってます。
ここに半角カンマが紛れています。これを全角文字(、)に置き換えたい。
第4フィールドにいくつカンマがあるかは不定です。(0の場合もあれば、2個、3個、場合によっては10個、それ以上など)
第4フィールド以外は種類は多いのですが特定の文字が入ります。また第4フィールド以外はカンマは入っていません。
各行のフィールド数は固定です。(実際は20フィールドあるのですが、省略のため5フィールドにしてます)
●対象データ
Field1,Field2,Field3,ここは説明文,Field5
Field1,Field2,Field3,説明文です,Field5
Field1,Field2,Field3,ここは説明文,ですよ,Field5
Field1,Field2,Field3,説明してる,フィールドですよ,Field5
●希望する結果
Field1,Field2,Field3,ここは説明文,Field5
Field1,Field2,Field3,説明文です,Field5
Field1,Field2,Field3,ここは説明文、ですよ,Field5
Field1,Field2,Field3,説明してる、フィールドですよ,Field5
よろしくお願いいたします。
2019/10/06(日) 13:19:25.82ID:MVlRtd/O
3つ目の,以降から,field5までの間をキャプチャで良さそう。
23デフォルトの名無しさん
2019/10/06(日) 21:18:49.15ID:QazjZrDG >>21
perl -ne '($a,$b,$c)=m/^((?:[^,]+,){3})(.*[^,])((?:,[^,\n]+){1})$/; $b=~s/,/、/g; print "$a$b$c\n"' input.csv
先頭の三つはカンマの数を数えて取り出し
^((?:[^,]+,){3})
フィールド数は固定とのことなので末尾側もカンマの数で取り出せる
((?:,[^,\n]+){1})$
その間が置換対象
(.*[^,])
ということで数字(3 と 1)を調整すれば実際のデータにも適用できると思います
perl -ne '($a,$b,$c)=m/^((?:[^,]+,){3})(.*[^,])((?:,[^,\n]+){1})$/; $b=~s/,/、/g; print "$a$b$c\n"' input.csv
先頭の三つはカンマの数を数えて取り出し
^((?:[^,]+,){3})
フィールド数は固定とのことなので末尾側もカンマの数で取り出せる
((?:,[^,\n]+){1})$
その間が置換対象
(.*[^,])
ということで数字(3 と 1)を調整すれば実際のデータにも適用できると思います
24デフォルトの名無しさん
2019/10/06(日) 21:30:20.48ID:QazjZrDG2019/10/07(月) 01:52:14.06ID:iyJYb3kL
質問を読んで直ぐにこれを書けるのなら速いけど
もし自分だったらあれをこうしてこれをこうしてと考えて試してる
間にテキストエディタとエクセルを行ったり来たりしながら
タブの挿入と置換と削除を繰り返した方が速いところが
悩ましいw
もし自分だったらあれをこうしてこれをこうしてと考えて試してる
間にテキストエディタとエクセルを行ったり来たりしながら
タブの挿入と置換と削除を繰り返した方が速いところが
悩ましいw
2019/10/07(月) 03:37:15.45ID:21LgfgEW
Ruby で、下のコードを、script.rb に書いて、
入力ファイル名を、input.csv とすると、
端末で、ruby script.rb input.csv と入力する。
つまり、ruby スクリプトファイル名 入力ファイル名
require 'csv'
# 引数はファイル名
CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する
row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4
end
入力ファイル名を、input.csv とすると、
端末で、ruby script.rb input.csv と入力する。
つまり、ruby スクリプトファイル名 入力ファイル名
require 'csv'
# 引数はファイル名
CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する
row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4
end
2726
2019/10/07(月) 04:17:44.92ID:21LgfgEW >>26
修正
tr ではなく、tr! で、直接レシーバー(文字列)を変更できる
>row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4
row[ 3 ].tr!( ",", "、" ) # 列4
修正
tr ではなく、tr! で、直接レシーバー(文字列)を変更できる
>row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4
row[ 3 ].tr!( ",", "、" ) # 列4
2019/10/07(月) 08:59:18.56ID:fodStNL1
それ splice でできるんじゃね? と思ったのでやってみた。
perl -nF, -e 'splice( @F,3,0,join("、",splice( @F,3,@F-5+1))); print( join(",",@F));'
perl -nF, -e 'splice( @F,3,0,join("、",splice( @F,3,@F-5+1))); print( join(",",@F));'
29あ
2019/10/07(月) 21:08:31.31ID:cbxlkLVD >>26
カンマでカラム分割してるからrow[3]にはカンマが含まれないよ
ARGF.each do |line|
line.match(/((?:.+?,){3})(.+)((?:,.+){1})/) do |match|
puts match[1] + match[2].gsub(",", "、") + match[3]
end
end
こういうのって力技で変換するよりも
CSV生成側でクウォートし直したほうがいいよね
カンマでカラム分割してるからrow[3]にはカンマが含まれないよ
ARGF.each do |line|
line.match(/((?:.+?,){3})(.+)((?:,.+){1})/) do |match|
puts match[1] + match[2].gsub(",", "、") + match[3]
end
end
こういうのって力技で変換するよりも
CSV生成側でクウォートし直したほうがいいよね
2019/10/07(月) 22:07:48.83ID:fodStNL1
手間をかけたくないなら、そんなフィールドは末尾に置くのが良い。
そうしておけば何を書こうと邪魔にならない。
いつかは手作業の限界を感じるかもしれないが、それを遅らせることはできる。
そうしておけば何を書こうと邪魔にならない。
いつかは手作業の限界を感じるかもしれないが、それを遅らせることはできる。
31デフォルトの名無しさん
2019/10/07(月) 23:06:48.69ID:gEYFs1Cq AIDS治療みたいなもんか
3226
2019/10/07(月) 23:29:10.22ID:21LgfgEW2019/10/07(月) 23:56:45.43ID:cbxlkLVD
3426
2019/10/08(火) 00:22:31.74ID:cRqslSem クォートしてなかったら、そもそも、CSV にならない!
列内に、カンマが含められないから、列数も変動する
列内に、カンマが含められないから、列数も変動する
2019/10/08(火) 00:32:16.98ID:brYPe3Nc
それがわかってるから変形したいんじゃん。
3626
2019/10/08(火) 02:16:13.41ID:cRqslSem バグのほとんどが設計段階で生じる、典型的な例かw
バグを設計段階で修正せず、実装段階で修正しようとするから、
ますますダメになるという例w
SE・上流工程が馬鹿だと、こういうのが多いw
Ruby などで実装した事がないからだろうw
ダメな事をやる香具師が、あまりにも多いw
バグを設計段階で修正せず、実装段階で修正しようとするから、
ますますダメになるという例w
SE・上流工程が馬鹿だと、こういうのが多いw
Ruby などで実装した事がないからだろうw
ダメな事をやる香具師が、あまりにも多いw
2019/10/08(火) 06:58:17.53ID:nEU/9wkt
なにこの人
要望・仕様を満たせないバグありのプログラムを書いておいて
それを指摘されたら「設計が悪い」と逆ギレしだしたよ
Ruby使う人ってこんなしょうもないおっさんに成り下がるのか
要望・仕様を満たせないバグありのプログラムを書いておいて
それを指摘されたら「設計が悪い」と逆ギレしだしたよ
Ruby使う人ってこんなしょうもないおっさんに成り下がるのか
38デフォルトの名無しさん
2019/10/08(火) 07:25:01.06ID:daf3ib6k >>21
Vim
:%s/^\%([^,]*,\)\{3\}\zs\(.*\)\%(\%(,[^,\n]*\)\{1\}$\)\@=/\=substitute(submatch(0), ',', '、', 'g')/
Emacs
M-x query-replace-regexp
正規表現:
^\(\(?:[^,]*,\)\{3\}\)\(.*\)\(\(?:,[^,
]*\)\{1\}\)$
置換:
\1\,(replace-regexp-in-string "," "、" \2)\3
正規表現は>>23とほぼ同じだけど、空のフィールドに対応するよう + をすべて * に変更した
「第4フィールド」の内容がカンマだけの場合にも対応 (.*[^,]) → (.*)
Vim
:%s/^\%([^,]*,\)\{3\}\zs\(.*\)\%(\%(,[^,\n]*\)\{1\}$\)\@=/\=substitute(submatch(0), ',', '、', 'g')/
Emacs
M-x query-replace-regexp
正規表現:
^\(\(?:[^,]*,\)\{3\}\)\(.*\)\(\(?:,[^,
]*\)\{1\}\)$
置換:
\1\,(replace-regexp-in-string "," "、" \2)\3
正規表現は>>23とほぼ同じだけど、空のフィールドに対応するよう + をすべて * に変更した
「第4フィールド」の内容がカンマだけの場合にも対応 (.*[^,]) → (.*)
39デフォルトの名無しさん
2019/10/12(土) 19:38:36.96ID:vBnCHMzu2019/10/29(火) 11:16:30.73ID:czk9+d/A
●Regular Expressionの使用環境
サクラエディタ bregoning.dll ver 4.12
●検索か置換か?
置換
●説明
をふくむ行(複数)を削除
●対象データ
A.jpg
B.jpg
C.jpg
●希望する結果
A.jpg
Bだけを削除するなら^.*B.*\nってわかるんですけど
B、Cを削除する方法がわかりません
誰か教えてください よろしくお願いします
サクラエディタ bregoning.dll ver 4.12
●検索か置換か?
置換
●説明
をふくむ行(複数)を削除
●対象データ
A.jpg
B.jpg
C.jpg
●希望する結果
A.jpg
Bだけを削除するなら^.*B.*\nってわかるんですけど
B、Cを削除する方法がわかりません
誰か教えてください よろしくお願いします
2019/10/29(火) 11:28:33.00ID:Ef61zXRp
2019/10/30(水) 12:29:04.54ID:n2bLSC2q
を含む行を削除
でググればすぐに見付かるんだが
ttps://yanohirota.com/regex-delete-row/
キーワードを含む行(複数指定) ^.*(キーワード1|キーワード2).*$(\r\n|\r|\n)?
でググればすぐに見付かるんだが
ttps://yanohirota.com/regex-delete-row/
キーワードを含む行(複数指定) ^.*(キーワード1|キーワード2).*$(\r\n|\r|\n)?
43デフォルトの名無しさん
2019/10/31(木) 18:25:55.12ID:KC+T8umE ●Regular Expressionの使用環境
Mery
●検索か置換か?
置換
●説明
パターンにマッチする行までの全ての行をキャプチャしたい
●対象データ
20191001
吾輩は猫である
名前はまだ無い
……
20191002
親譲りの無鉄砲で
子供の頃から
損ばかりしている
……
●希望する結果
20191001[Tab]"吾輩は猫である
名前はまだ無い
……"
[改行]
20191002[Tab]"親譲りの無鉄砲で
子供の頃から
損ばかりしている
……"
日付と本文が交互に現れるテキストを日付と本文とに分けてキャプチャして置換したいのですが、上手く行きません。
最短一致を使用すると本文が一行しかキャプチャできないし、最長一致ですと最後の日付までの全行がキャプチャされてしまいます。
どうかご教示下さい。
Mery
●検索か置換か?
置換
●説明
パターンにマッチする行までの全ての行をキャプチャしたい
●対象データ
20191001
吾輩は猫である
名前はまだ無い
……
20191002
親譲りの無鉄砲で
子供の頃から
損ばかりしている
……
●希望する結果
20191001[Tab]"吾輩は猫である
名前はまだ無い
……"
[改行]
20191002[Tab]"親譲りの無鉄砲で
子供の頃から
損ばかりしている
……"
日付と本文が交互に現れるテキストを日付と本文とに分けてキャプチャして置換したいのですが、上手く行きません。
最短一致を使用すると本文が一行しかキャプチャできないし、最長一致ですと最後の日付までの全行がキャプチャされてしまいます。
どうかご教示下さい。
2019/10/31(木) 20:12:39.29ID:qSOPmN+b
>43
検索
(^[0-9]{8})\n
置換
\n$1\t
検索
(^[0-9]{8})\n
置換
\n$1\t
2019/11/01(金) 00:19:13.27ID:l+SDkm5c
Ruby では、
text = <<"EOT"
20191001
あ
20191002
い
う
EOT
# キャプチャー部分の、#{ $1 } は、8桁の数字
p res = text.gsub( /^(\d{8})\n/ ) { "\n#{ $1 }\t" }
print res
出力
[空行]
20191001[Tab]あ
[空行]
20191002[Tab]い
う
text = <<"EOT"
20191001
あ
20191002
い
う
EOT
# キャプチャー部分の、#{ $1 } は、8桁の数字
p res = text.gsub( /^(\d{8})\n/ ) { "\n#{ $1 }\t" }
print res
出力
[空行]
20191001[Tab]あ
[空行]
20191002[Tab]い
う
46デフォルトの名無しさん
2019/11/01(金) 08:08:52.32ID:TORoDjzQ2019/11/01(金) 09:29:10.19ID:M2kmurNA
2019/11/01(金) 09:30:04.91ID:M2kmurNA
一応置換はこれ
$1¥t"$2"
$1¥t"$2"
2019/11/01(金) 11:19:24.96ID:XqhX+0kD
(^\d{8})\n((?~^\d{8}))$
\1\t"\2"
最後の行が改行されてると"がズレるからそこだけ手作業
\1\t"\2"
最後の行が改行されてると"がズレるからそこだけ手作業
2019/11/01(金) 11:25:13.23ID:zrbJp7o3
negative lookahead
https://regex101.com/r/DBWwcI/1
最下行に日付+改行を付け足せばORが一つ減って少し読みやすい
https://regex101.com/r/R3MQz7/1
https://regex101.com/r/DBWwcI/1
最下行に日付+改行を付け足せばORが一つ減って少し読みやすい
https://regex101.com/r/R3MQz7/1
51デフォルトの名無しさん
2019/11/01(金) 13:33:34.02ID:i0nQhs53 >>43
^([0-9]{8})\n((?:(?!\n[0-9]{8}\n)[\S\s])+)
^([0-9]{8})\n((?:(?!\n[0-9]{8}\n)[\S\s])+)
2019/11/01(金) 13:55:21.62ID:IH7Homqm
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\Z)
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\z)
↓
$1\t"$2"
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\z)
↓
$1\t"$2"
2019/11/01(金) 14:05:57.48ID:zrbJp7o3
>>50
negative lookaheadとか書きつつ全然negativeじゃなかったわ
negative lookaheadとか書きつつ全然negativeじゃなかったわ
54デフォルトの名無しさん
2019/11/02(土) 07:00:29.25ID:Y+w4hll1 皆様ありがとうございます
最短一致と先読みを組み合わせて
(\d{8})((?:.*\n)*?)(?=\d{8})
のような感じでマッチしました
単に.*だけだと行末までで止まってしまうので明示的に.*\nの繰り返しと指定しないといけなかったようです
最短一致と先読みを組み合わせて
(\d{8})((?:.*\n)*?)(?=\d{8})
のような感じでマッチしました
単に.*だけだと行末までで止まってしまうので明示的に.*\nの繰り返しと指定しないといけなかったようです
2019/11/18(月) 01:09:59.81ID:B3FWH6HK
/(A|B*|C+|D?|E?|)+/ は /[A-E]*/ と同じなんだろうか。
2019/11/23(土) 19:09:02.72ID:S+7ZA2D+
=を含まない行を検索できる表現方法は?
2019/11/23(土) 21:06:16.66ID:8xX8HZu8
>>56
^[^=]*$
^[^=]*$
58デフォルトの名無しさん
2019/11/24(日) 19:30:30.97ID:BlMs70wA PCRE2 Version 10.34 21-November-2019
https://www.pcre.org/
https://www.pcre.org/
2019/12/07(土) 04:27:54.74ID:Dhp88CPz
今でもアクティブに更新してるのってPCREの他はre2と鬼車系くらいなのかな
昔はライブラリの話も結構してた気がするけど
昔はライブラリの話も結構してた気がするけど
2019/12/07(土) 11:10:24.58ID:hNCBwRLG
Hyperscan
2019/12/07(土) 19:19:38.35ID:S05zsHBk
テキストエディタで見えないけど何かがある状態
MacのBBEditだと逆さまの赤い「?」が表示される状態なんですけど
こういうのを正規表現で捕まえる事って出来ないですか?
MacのBBEditだと逆さまの赤い「?」が表示される状態なんですけど
こういうのを正規表現で捕まえる事って出来ないですか?
2019/12/07(土) 19:21:06.34ID:+kYKAjJc
否定で出来ない?
2019/12/07(土) 20:27:35.79ID:S05zsHBk
64デフォルトの名無しさん
2019/12/07(土) 20:32:56.16ID:tj55yZgB そういうときはバイナリエディタで開いて該当部の文字コード引きなよ。
2019/12/07(土) 20:51:47.44ID:S05zsHBk
ありがとうです
\x{7F}
でいけました
\x{7F}
でいけました
66デフォルトの名無しさん
2019/12/07(土) 21:19:40.77ID:b/g70Kck ウムラウトなどのアクセント付きアルファベットにのみ一致させる正規表現をお教えください。
2019/12/07(土) 21:54:33.96ID:hNCBwRLG
正規表現だけではまだできないんじゃないかな?
一般的には各言語が持ってるUnicodeの正規化機能を使って検索対象を基底文字+結合文字の形に正規化してから、結合文字を検索する
一般的には各言語が持ってるUnicodeの正規化機能を使って検索対象を基底文字+結合文字の形に正規化してから、結合文字を検索する
2019/12/07(土) 22:53:57.20ID:/3OJwFPr
日本語なら、NKF というライブラリがあるように、
ウムラウトなら、その国のライブラリがあるかも知れない
知らないけど
まあ、日本人に聞いても、ムダだと思うw
使っている国の人に、聞いた方がよい
ウムラウトなら、その国のライブラリがあるかも知れない
知らないけど
まあ、日本人に聞いても、ムダだと思うw
使っている国の人に、聞いた方がよい
2019/12/07(土) 23:41:45.44ID:FrJsgiML
cpanライブラリの中に一般的な正規表現集めたものがあるから
その中にあるかもね
その中にあるかもね
2019/12/08(日) 03:11:20.97ID:BNiynU8G
あるいは文字コードで標準ラテンのz(U+007A)よりあとを全て拾うように範囲指定するとか。
2019/12/08(日) 12:38:28.10ID:h14g0YSH
>>66
数は知れてるんだから普通に[ÄäÏï …]ってやればいいんじゃね?
数は知れてるんだから普通に[ÄäÏï …]ってやればいいんじゃね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 【乞食速報】UFJが5万円配ってる。これもう早苗給付金だろwwwwwwww [201193242]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
