Regular Expression(正規表現) Part15

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/09/16(月) 22:25:11.87ID:enU8we0d
Regular Expressionスレです。

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

前スレ
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/


次スレは>>980宜しく
天ぷら等>>2以降
657デフォルトの名無しさん
垢版 |
2021/04/15(木) 18:43:40.23ID:n7ib2P7L
>>656
ありがとうございました。確信がもてました!
658デフォルトの名無しさん
垢版 |
2021/04/16(金) 08:22:32.69ID:jY/tNYiK
そんな糞サイトを見るのはやめた方がいい
659デフォルトの名無しさん
垢版 |
2021/04/18(日) 11:01:19.33ID:GrVz/jbm
●Regular Expressionの使用環境
C#

●検索か置換か?
検索

●説明
表のデータを名前付きでキャプチャしたい(year,month,day;open;high;low;close;volume)
日付 <td class="XXX">(?<year>\d{4})/(?<month>\d?\d)/(?<day>\d?\d)</td>

株価 <td>(?<open>[0-9,.]+)</td>\r\n
<td>(?<high>[0-9,.]+)</td>\r\n
<td>(?<low>[0-9,.]+)</td>\r\n
<td>(?<close>[0-9,.]+)</td>\r\n
<td>.*</td>\r\n<td>(?<volume>[0-9,.]+)</td>
●対象データ
<tr>
<td class="XXX">2021/04/02</td> 日付
<td class="YYY">8,510.0</td >始値
<td class="YYY">8,595.0</td> 高値
<td class="YYY">8,432.0</td> 安値
<td class="YYY">8,462.0</td> 終値
<td class="YYY">8,462.0</td> 調整後終値
<td class="YYY">4,337,300</td>出来高
</tr>

●希望する結果
<td class="XXX">(?<year>\d{4})/(?<month>\d?\d)/(?<day>\d?\d)</td>
または<td>(?<open>[0-9,.]+)</td>単独だと一致するが日付と株価を全部つなげると駄目なので一致するようにしたい

御教示よろしくお願いします
2021/04/18(日) 13:04:59.48ID:8BgTcnje
構造があるものは、正規表現では難しい。
スクレイピングは、Ruby で、nokogiri なら、

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<tr>
<td class="XXX">2021/04/02</td> 日付
<td class="YYY">8,510.0</td >始値
<td class="YYY">8,595.0</td> 高値
<td class="YYY">8,432.0</td> 安値
<td class="YYY">8,462.0</td> 終値
<td class="YYY">8,462.0</td> 調整後終値
<td class="YYY">4,337,300</td>出来高
</tr>
EOT

element = doc.at_css( 'tr > td.XXX' )
puts element.content
#=> 2021/04/02

elements = doc.css( 'tr > td.YYY' )
puts elements.map( &:content ).join( " : " )

#=> 8,510.0 : 8,595.0 : 8,432.0 : 8,462.0 : 8,462.0 : 4,337,300
661デフォルトの名無しさん
垢版 |
2021/04/18(日) 16:50:35.98ID:GrVz/jbm
>660
回答有難うございます テストツールではじかれるのそういうことなんですか
perlでならCSSセレクタ使って取れるんですが遅くてRubyでも同じでしょうね
2021/04/18(日) 19:18:36.24ID:3ca8v7Vr
>>659
対象データの各行の後ろに実際には日本語はないってことでいいんだよね?
2021/04/18(日) 19:29:32.94ID:3ca8v7Vr
日付の正規表現省略</td>
<td class="YYY">(?<open>[0-9,.]+)</td>\s+<td class="YYY">(?<high>[0-9,.]+)</td>\s+以降の正規表現省略

C#(実質.NET?)の正規表現は詳しくないし試してないけど、
一般的なPerl5系列の正規表現なら\sのマッチ対象(ホワイトスペース)に
\rや\nも内包されてるので、
\s+で改行と<tdの前のスペースインデントに対応できると思う
664663
垢版 |
2021/04/18(日) 19:31:55.31ID:3ca8v7Vr
>>663訂正
日付の正規表現省略</td>\s+<td class="YYY">(?<open>[0-9,.]+)</td>\s+<td class="YYY">(?<high>[0-9,.]+)</td>\s+以降の正規表現省略
665デフォルトの名無しさん
垢版 |
2021/04/18(日) 19:33:30.21ID:KOpB5ISv
空白とか考慮してねんじゃねーの
提示されてるデータ見ても</td >始値だけ違ってるし
改行の扱いで転けてる可能性も
666デフォルトの名無しさん
垢版 |
2021/04/18(日) 20:10:08.07ID:GrVz/jbm
対象データの後ろの日本語は注記で実際にはありません
667デフォルトの名無しさん
垢版 |
2021/04/18(日) 20:17:06.51ID:GrVz/jbm
>663,664
有難うございました \s+ でつなげて上手くゆきました
668デフォルトの名無しさん
垢版 |
2021/04/18(日) 20:42:16.44ID:P53jdUzk
Rubyくん=糖質w
669デフォルトの名無しさん
垢版 |
2021/04/23(金) 13:32:17.18ID:wRSxYRWl
Pythonで以下の条件に当てはまる正規表現はどうしたら実現できるでしょうか。

半角英数字(大文字小文字)255文字までとハイフンのみOK
--の連続は不可。行末がハイフンで終わるのも不可

ここまではできてるんですが、どなたか知恵を頂きたいです。
^[a-zA-Z0-9-]*(?<!-)$
2021/04/23(金) 13:46:23.58ID:lAJIVY64
pythonなら正規表現だけで処理しなくても
抜き出した後に--が含まれるのを除くとかどうにでもなるだろ。
2021/04/23(金) 13:47:26.10ID:S2TaYi95
^(?:(?!--)[a-zA-Z0-9-])*(?<!-)$
^(?!.*--)[a-zA-Z0-9-]*(?<!-)$
まあこの2つの書き方を覚えればいいんじゃない?
ただ空行もマッチしちゃうよ
672669
垢版 |
2021/04/23(金) 14:25:42.69ID:wRSxYRWl
>>670
確かにそうですが、ちょっと格好つけたかったんです。

>>671
おぉぉぉぉありがとうございます。
とっても助かりました!!
おかげでこの先、頑張れそうです。。。(定時まで)
2021/04/23(金) 16:59:46.76ID:vxdqi9h5
自分で理解できない正規表現とか組み込んで、この先メンテナンスできるんだろうか。
一時的なことならいいが
2021/04/23(金) 17:20:20.44ID:S2TaYi95
この程度見れば何してるか理解できるよね
2つは記述は似てるけど考え方が少し違う
2021/04/23(金) 18:40:17.97ID:WE1AtRNI
^(?>-?+[a-z0-9]){0,255}$
2021/04/23(金) 20:39:56.15ID:EZOqnzXJ
条件が曖昧なので2通り(定時回ってそうだが)

# ハイフン含めて255文字
^([0-9A-Za-z]|-(?!(-|$))){1,255}$

# ハイフンは255文字に含めない
^(-?[0-9A-Za-z]){1,255}$

>>675
試したら"?>"など知らんって言われた
2021/04/23(金) 21:20:25.48ID:S2TaYi95
?+も無いみたい
2021/04/24(土) 01:22:36.39ID:fpQdUE+5
先読み後読みは方言が多いものね
2021/04/25(日) 23:25:43.60ID:AhiBFSkY
単純に ^(-?[a-zA-Z0-9])[0,255]$ とかで良かったんじゃないかな
2021/04/25(日) 23:27:08.69ID:AhiBFSkY
>>676と重複した。スマン
681669
垢版 |
2021/04/26(月) 16:56:04.35ID:SkU1AL8m
みなさんありがとうございます。
こんな正規表現良く書いたねーって先輩のレビュアーに言われて、
詳しく説明してって言われたんですが説明できなかったので、
頂いた数々の秘技を頑張って理解していこうと思います。(定時まで)
2021/05/07(金) 02:26:32.28ID:FTeVmJ7m
以前使っていた正規表現の質問専用スレが見当たらないからここで聞きたい
javascriptで以下のマッチングを行うとマッチするけど、キャプチャの分が取得されない。
どうしたらいいんだろう

let abc = "/abcd/357/1/";
let regex = /^\/abcd\/(\d+)\/\d+\/$/gi;

let result = abc.match(regex);

console.log(result.length);

この出力が1になる。(\d+)も含めた2になってほしい
2021/05/07(金) 02:44:53.78ID:O1URPzeE
matchAllかwhile regex.exec(string) !== null
2021/05/07(金) 03:03:26.43ID:FTeVmJ7m
解決したわ
gあるとキャプチャ取得されないって書いてあったわ

>>683
すまん
2021/05/18(火) 11:17:29.67ID:XAxheHxj
元データ
1621299591.842348,378,666,111,84

これをサブパターンで以下のように抽出したいです。
1621299591.842348
378
666
111
84

最終的な目的としては、ZabbixでCSV形式ログから値を取りたいです。
いろんなサイトを参考にしてるんですが、簡単そうに見えてこれが実現できる例が見つけられず。
2021/05/18(火) 11:25:45.08ID:ZvUkaH8s
([^,]*)
じゃあかん?
2021/05/18(火) 11:27:05.69ID:YmpO7+1q
>>685
それって正規表現で処理する部分なのか?
本当にそのままのデータなら/,/¥n/だろ。
2021/05/18(火) 12:29:17.50ID:AY6+4ZvQ
>>685
Zabbixは1つの値で1つのitemなので
(.*),(.*),(.*),(.*),(.*)みたいな正規表現を使って$1~$5を出力するそれぞれ別の依存itemを登録するんじゃない?
689685
垢版 |
2021/05/18(火) 13:08:11.81ID:XAxheHxj
ありがとうございます。
logrt["/var/log/^.*\.txt$","^([0-9]+).([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)$",,,,\3,,]
こんな感じでできました。
ご指摘通り\3のところを\4や\5にしたアイテムを別途作成。
2021/05/18(火) 14:48:27.97ID:AY6+4ZvQ
>>689
ログファイルを指定するアイテムは1つにして
それに依存する依存アイテムを5つ作ったほうが処理効率がいいと思う
https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/dependent_items
691685
垢版 |
2021/05/18(火) 17:53:24.64ID:XAxheHxj
>>690
依存アイテムの保存前処理で上の正規表現入れてできました!
2021/05/20(木) 17:15:23.25ID:Bfk5GZud
こんにちは
質問です

●Regular Expressionの使用環境
普通のテキストファイル
いま Sublime text を使ってますが無料のエディタなら何でも使います

●検索か置換か?
置換

●説明
各パラグラフの1行目を2行目以下の全ての行に加えたい
1行目はパラグラフごとに異なり、2行目以下はすべて異なる

●対象データ
/system/app
AntHalService
AutoRegistration
BasicDreams

/system/priv-app
AutoKillService
BackupRestoreConfirmation

●希望する結果
AntHalService^=/system/app/AntHalService
AutoRegistration^=/system/app/AutoRegistration
BasicDreams^=/system/app/BasicDreams
AutoKillService^=/system/priv-app/AutoKillService
BackupRestoreConfirmation^=/system/priv-app/BackupRestoreConfirmation

よろしくお願いします
2021/05/20(木) 17:34:20.04ID:HTt3W2mn
正規表現だけで可能なのか?
適当なスクリプト使った方が手っ取り早いような。
2021/05/20(木) 17:50:54.95ID:yRtliBGo
まずパラグラフをどう判断するかの条件も書かれてないしね
書かれてる2項目だけでいいならできるけど、
望むことはパラグラフの1行目の自動取得だろうし
2021/05/20(木) 17:55:02.71ID:HTt3W2mn
>>694
ちなみに、上記限定だったらどう書くの?
自分はちょっと思い浮かばない。
2021/05/20(木) 18:33:52.42ID:+Y6kAz1b
各段落1行目の前が空行でそれ以外に空行は無い とか
1行目行頭だけが"/"で他の行頭には"/"は無い とか
1行目だけが保ち得る条件が必要なのと

各段落の行数が同じで無いとキャプチャは出来ても置換で参照使えなくね?

・1行目の一意な条件
・段落の行数が一定
このふたつの条件満たさないと正規表現だけでは無理じゃね?
2021/05/20(木) 18:58:29.37ID:+Y6kAz1b
段落の最大行数に合わせて置換式書いておいて置換後
2度目に 行頭が "^=" の行を削除 なら行数不定でも出来るだろうけど
美しくないしスクリプトの方が適してると思う
2021/05/20(木) 19:09:27.78ID:IKwP0pwO
可変長戻り読みしか思いつかなかった

>>692
https://regex101.com/r/DcrdT0/1
エディタ代わりにこのページを使うならUpdate Regexは絶対にするなよ
699692
垢版 |
2021/05/20(木) 19:35:18.66ID:Bfk5GZud
みなさんありがとうございます

>>698
https://regex101.com/r/DcrdT0/1 のようにしても Sublime ではマッチしないんですが
おすすめのエディタはありますでしょうか?

また、
> エディタ代わりにこのページを使うならUpdate Regexは絶対にするなよ
なぜでしょうか?
2021/05/20(木) 20:05:29.92ID:w4VGBl/7
>>699
https://regex101.com/r/fg8u8n/1を見ればわかるとおり「対象とする文章も保存される」ため
一般的に漏洩したら問題でしょ?
2021/06/24(木) 21:40:32.01ID:9+/dPFw/
●Regular Expressionの使用環境
サクラエディタ

●検索か置換か?
検索(正規表現で色を付けるため)

●説明
各行の最後に現れる:の直後から行末までを一致させたい

●対象データ
intval:i:1
strval:s:0,1,563,11,1913,1033

●希望する結果
1
0,1,563,11,1913,1033

よろしくお願いします
702デフォルトの名無しさん
垢版 |
2021/06/24(木) 22:02:05.04ID:oCTUQBV1
:と改行以外が行末まで続くんだろ
:([^:\n]*)$
お願いしないといけないようなところあるか?
どーせ:はハイライトしたくないとかだろうけど
肯定戻り読み(?<=regex)使うだけだよな
(?<=:)([^:\n]*)$
これお願いしないといけないようなところあるのか?
703701
垢版 |
2021/06/24(木) 22:04:31.86ID:9+/dPFw/
>>702
超ありがとうございました!

(肯|否)定(先|後)読みがうまく使えなくて・・・
2021/06/26(土) 22:47:52.84ID:jTUBzdfm
●Regular Expressionの使用環境
Powershell

●検索か置換か?
置換

●説明
フォルダにつけている日付のフォーマットを変えたい
作業範囲はカレントフォルダだけで良いです #下階層には行かない

●対象データ
[2020.12.20] AA案件 [作業者A]
[2021.04.02] DD案件 [作業者BB]
[2021.06.15] GGGGG案件 [作業者D]
[2021.07.07] BBB案件 [作業者A]

●希望する結果
[201220] AA案件 [作業者A]
[210402] DD案件 [作業者BB]
[210615] GGGGG案件 [作業者D]
[210707] BBB案件 [作業者A]

よろしくお願いします。
705デフォルトの名無しさん
垢版 |
2021/06/27(日) 00:07:19.19ID:9wAo5BpJ
ほぼそのままだろ
www.atmarkit.co.jp/ait/articles/1411/07/news133.html
706デフォルトの名無しさん
垢版 |
2021/06/28(月) 18:13:23.38ID:V/YMeLZd
pythonです

.foo.xxx_var
.foo.foo.yyy_var
この二種類の形式の文字列があるとき
xxxとyyyだけほしいんですがどう書いたらいいですか?
707デフォルトの名無しさん
垢版 |
2021/06/28(月) 18:14:54.33ID:V/YMeLZd
xxxとyyyの部分は可変長の英数記号です
2021/06/28(月) 18:34:58.46ID:LBPB01By
def getxy(s):
return s[s.rfind('.')+1:s.rfind('_')]


a=getxy('.foo.xxx_var')
2021/06/28(月) 18:39:07.90ID:JVYonSFO
('.')
('_')
顔文字みたいで可愛くてワロタ
710デフォルトの名無しさん
垢版 |
2021/06/28(月) 19:17:22.90ID:V/YMeLZd
>>708
rfind知りませんでした。ありがとう


不格好だけど
findall("(.+\.)?(.+)_var")[0][1]
でも取れました。正規表現てどんな順番で書いていけばいいのかわからん…
2021/06/28(月) 20:24:42.57ID:dny5MV4o
s='.foo.xxx_var'
re.search('([^.]*)_',s).group(1)
2021/06/28(月) 20:50:58.81ID:quG4wdoj
Ruby で作ってみた

# 最後のドットと、_ の間の文字列を抜き出す。該当なしなら、nil を返す

def slice_string( input_str )
pos_1 = input_str.rindex( "." ) # 文字列の末尾から探す
return nil unless pos_1

pos_2 = input_str.index( "_", pos_1 + 1 ) # ドットの次の文字から探す
return nil unless pos_2

return input_str.slice( pos_1 + 1 ... pos_2 )
end

input_ary = %w(.foo.xxx_var .foo.foo.yyy_var .zz zz)

p input_ary.map{ |str| slice_string( str ) }
#=> [ "xxx", "yyy", nil, nil ]
713デフォルトの名無しさん
垢版 |
2021/06/28(月) 21:04:09.77ID:3eYqyq98
>>712
このキチガイどこにでも湧くのなw
2021/06/28(月) 21:44:37.04ID:24AqjAIP
各言語でそれぞれ書き込む事態にでもならなきゃ自分の行いがいかにウザイかを実感できない人なんだろう
まったくの場違いだと言うのにそれに気づかないもんな
2021/06/28(月) 21:48:35.68ID:LpQ5PmfN
>>713-714
なんでお前ら相手するんだ?
716デフォルトの名無しさん
垢版 |
2021/06/29(火) 00:51:17.13ID:f7Gcy3Ty
jien
2021/06/29(火) 13:25:19.76ID:hNYNhvVW
先頭以外の A をすべて S に置換
って一般解としてどう書くの?

AAAEAA を ASSESS にしたいとか
2021/06/29(火) 13:47:51.52ID:g0ftD4JU
(?!^)A
2021/06/29(火) 13:49:05.67ID:FsexkEm/
(?!^)A
2021/06/29(火) 15:16:43.44ID:W3FYE8ZM
>>718-719
センキューベリーmatch
2021/07/02(金) 02:33:14.69ID:aZbrSReX
>>720
評価する
722デフォルトの名無しさん
垢版 |
2021/07/02(金) 08:13:06.57ID:Rii8+UZr
下URLにあるPerlのRegexp::Optimizerのように、正規表現を最適化するC/C++用ライブラリはご存じないですか?
https://metacpan.org/pod/Regexp::Optimizer
723デフォルトの名無しさん
垢版 |
2021/07/02(金) 13:04:44.47ID:TPqIrTa2
●Regular Expressionの使用環境
python3.8.5

●検索か置換か?
置換

●説明
<数字>以外の<>を外したい

●対象データ
[<< ><test<<012>>name1><> >]
●希望する結果
[ test<012>name1 ]
2021/07/02(金) 14:24:45.40ID:jArCbPhS
可変長の否定戻り読みが使えるなら
<(?!\d+>)|(?<!<\d+)>

数字の桁が3桁固定なら
<(?!\d+>)|(?<!<\d\d\d)>
725デフォルトの名無しさん
垢版 |
2021/07/02(金) 14:35:17.70ID:TPqIrTa2
>>724
すいません、説明が足りなくて
可変長で、可変長扱えないです(´;ω;`)
726デフォルトの名無しさん
垢版 |
2021/07/02(金) 14:47:29.27ID:TPqIrTa2
あれか
<(\d+)>のサイズ取得して動的にするのか…
727デフォルトの名無しさん
垢版 |
2021/07/02(金) 14:52:33.23ID:dFaH8qnm
>>723
re.sub(r'(<[0-9]+>)|[<>]', r'\1', '[<< ><test<<012>>name1><> >]')

>>507のパターン
これ使い勝手良いね
2021/07/02(金) 14:54:06.60ID:DfuUcF9q
>>723
pythonなら正規表現だけにこだわらなきゃ<¥d+>さえ拾えばどうとでもなるだろ。
2021/07/02(金) 15:02:33.69ID:u75TM6NR
このスレって有能な人いてステキ///
2021/07/02(金) 15:14:25.77ID:t4sxB6eQ
数値がネストした構造の一番内側にあるとは限らないんじゃないの?
731デフォルトの名無しさん
垢版 |
2021/07/02(金) 16:18:03.06ID:TPqIrTa2
>>727
すごい
これどうなってるんですか?
なんでorの前のヤツだけ置換されるの?
732デフォルトの名無しさん
垢版 |
2021/07/02(金) 16:56:02.25ID:dFaH8qnm
>>731
| の左右どちらに一致した場合でも \1 に置換している
ただし片方にしか \1 に対応する括弧がない——というのがミソ

左側 (<[0-9]+>) に一致したときの \1 は 一致した全体なので結果として何も変わらない
右側 [<>] に一致したときの \1 は空なので削除される
2021/07/02(金) 17:12:17.66ID:3MNaXJzy
<><abc><value<123<x>>/value><>
こういうパターンはあるのか?
2021/07/02(金) 17:17:38.07ID:+v1CDJ0v
> ●説明
> <数字>以外の<>を外したい
735デフォルトの名無しさん
垢版 |
2021/07/02(金) 17:22:56.52ID:TPqIrTa2
>>732
あーなるほど
すごいなあ
2021/07/02(金) 17:26:47.31ID:3MNaXJzy
>>734
だからもしこういうのがあるのなら、上の回答じゃダメじゃん
<abc>は消えないぞ
2021/07/02(金) 17:29:30.28ID:+v1CDJ0v
こいつ無能そう
738デフォルトの名無しさん
垢版 |
2021/07/02(金) 17:49:16.07ID:TPqIrTa2
size = 4
s1 = entry.get()
s2 = re.sub(r'(<\d+>)|[<>]|[\\/:*?"|]+', r'\1', s1)
ss = [re.sub(r'<(\d+)>', lambda m: f'{{:0{len(m[1])}}}'.format(int(m[1])+i), s2) for i in range(size)]

簡単な範囲リネームソフト作ってて、windowsで使えない文字外して<数字>はカウントアップ がしたかったのでこれで大丈夫のようです.たぶん
入力(スタート値) dir<001>のとき リネーム範囲が2ならdir001,dir002を生成するみたいな
739デフォルトの名無しさん
垢版 |
2021/07/02(金) 18:45:34.59ID:Y9y/b0vz
でもさー
結局のところ自分の理解できる範囲で対処できないとブラックボックスでしかないから保守できないよな
2021/07/02(金) 19:31:10.32ID:aZbrSReX
掲示板で説明できることには限界があるからな
741デフォルトの名無しさん
垢版 |
2021/07/02(金) 20:03:30.56ID:6v6/dX3F
>>736
なんの環境だと消えないんだろう
2021/07/02(金) 21:23:02.60ID:8o23sM1E
ネストがある構造物は、パーサーを使わないと保守できない。
Ruby のNokogiri みたいな、XML/HTML パーサー

正規表現でバグると、他人が手を出せないので、
結局、パーサーで作り直しになる

アンチパターンの常識

モジュール・デザインパターンの知識が無いから、
何にでも正規表現を使う、香具師と言われている
2021/07/02(金) 21:48:40.11ID:QH8xfbBh
ネストがある構造はRDBで管理するという方法もあるな
2021/07/02(金) 23:39:59.09ID:aZbrSReX
>>727 のパターンは構造を見てない
ノンマッチな><だってホイホイ喰っちまう奴なんだぜ
745デフォルトの名無しさん
垢版 |
2021/07/03(土) 03:31:09.01ID:mR1/t/06
manの解析させるルーチンで無制限にネスト潜るの一度だけ書いたこと思い出したわ
2021/07/05(月) 13:22:47.46ID:a0633hZA
1行に「半角スペースと全角スペースが3文字以上ある時」を検出するにはどうすればいいのでしょう?
2021/07/05(月) 13:38:25.68ID:yW7vm9zn
(.*\040|.*\201\100){3}
とかか
2021/07/05(月) 13:43:46.12ID:a0633hZA
>>747
ありがとう試してみます
2021/07/05(月) 13:46:58.03ID:yW7vm9zn
>>747
SJISだったらこうしないとだめか
(([^\201-\237\340-\357]|[\201-\237\340-\357].)*(\040|\201\100)){3}
2021/07/05(月) 18:52:47.25ID:jQnBoLSl
●Regular Expressionの使用環境
サクラエディタ

●検索か置換か?
検索(正規表現で色を付けるため)

●説明
各行の「CR」または「LF」の改行コード部分に一致(CR+LFは一致させない)

●対象データ
あ\r
い\n
う\r\n

●希望する結果
\r
\n

よろしくお願いします
751750
垢版 |
2021/07/05(月) 19:33:48.25ID:jQnBoLSl
なんとか自分で調べて見たんですが、下の正規表現で合ってますか?
[\r\n](?!\n)$
2021/07/05(月) 21:45:00.65ID:oDqG8EZQ
(\r(?!\n))|((?<!\r)\n)
でどうだろう
2021/07/05(月) 22:18:11.17ID:lQZs6uo5
\r$|[^\r]\n$
じゃダメなのかな?
2021/07/09(金) 02:51:04.10ID:Cp8DUWjQ
文中もしくは単独で特定の文字列がある場合を除く
ってどうやるの?
2021/07/09(金) 07:34:09.88ID:XAnKbPPo
^(?~特定の文字列)$
^(?!.*特定の文字列).*$
2021/07/09(金) 09:09:31.42ID:hfuqSqCj
わざわざ貪欲にする必要性がわからん
■ このスレッドは過去ログ倉庫に格納されています