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:enU8we0d772デフォルトの名無しさん
2021/07/31(土) 20:32:32.88ID:jvyZNadn >>764
解決したの?
解決したの?
773デフォルトの名無しさん
2021/07/31(土) 20:46:25.03ID:Op1DTI/B テキストファイルなんだよね?
だったらテキストエディタで開いて改行コードをCRLFに指定して保存するだけで
改行コードは揃うと思うけど
俺の使ってるエディタでCRLF,CR,LFの3つを混在させたファイルでやってみたけど
全部CRLFに変わってくれたよ
だったらテキストエディタで開いて改行コードをCRLFに指定して保存するだけで
改行コードは揃うと思うけど
俺の使ってるエディタでCRLF,CR,LFの3つを混在させたファイルでやってみたけど
全部CRLFに変わってくれたよ
774デフォルトの名無しさん
2021/08/01(日) 06:07:28.90ID:jVmJEbam grepは行単位で処理するが、行は\nで終わることになってる
>>771のいうようにgrepが\nを食ってしまうので\nは検索できない
行末にマッチさせたいなら\nではなく$を使う
が、改行コード変換したいだけならCygwinに最初から入ってるunix2dos/dos2unixでも使えばいい
>>771のいうようにgrepが\nを食ってしまうので\nは検索できない
行末にマッチさせたいなら\nではなく$を使う
が、改行コード変換したいだけならCygwinに最初から入ってるunix2dos/dos2unixでも使えばいい
775デフォルトの名無しさん
2021/08/01(日) 21:54:31.32ID:9jBEmz65776デフォルトの名無しさん
2021/08/01(日) 23:37:51.19ID:jVmJEbam >>775
dos2unix/unix2dosは旧macの改行も変換できるので問題ない
dos2unix/unix2dosは旧macの改行も変換できるので問題ない
777デフォルトの名無しさん
2021/08/18(水) 07:15:11.84ID:zZ9UTeBf ニュー速VIP板
(?<=ニュー速)VIP(?=板)
↑これは分かるけど
(?=ニュー速)VIP(?<=板)
↑これが分からん
(?<=ニュー速)VIP(?=板)
↑これは分かるけど
(?=ニュー速)VIP(?<=板)
↑これが分からん
778デフォルトの名無しさん
2021/08/18(水) 08:14:34.80ID:zKbbX4Ws (?=ニュー速)VIP
VIP(?<=板)
これらに一致するものは有り得ない
(?=.*ニュー速)VIP
こうなら有り得る
先読み
(?=abc)
はabcの左側aの手前の「位置」に一致するもの
xabcとあればxとaの間の位置に一致
戻り読み
(?<=abc)
は先読みと反対でabcの後ろcの後の「位置」に一致するもの
abcxとあればcとxの間の位置に一致
つまり
(?=ニュー速) は「ニュー速」の「ニ」の手前の位置に一致するものなので
(?=ニュー速)ニュー速 で無ければ絶対に一致しない条件式となる
VIP(?<=板)
これらに一致するものは有り得ない
(?=.*ニュー速)VIP
こうなら有り得る
先読み
(?=abc)
はabcの左側aの手前の「位置」に一致するもの
xabcとあればxとaの間の位置に一致
戻り読み
(?<=abc)
は先読みと反対でabcの後ろcの後の「位置」に一致するもの
abcxとあればcとxの間の位置に一致
つまり
(?=ニュー速) は「ニュー速」の「ニ」の手前の位置に一致するものなので
(?=ニュー速)ニュー速 で無ければ絶対に一致しない条件式となる
779デフォルトの名無しさん
2021/08/18(水) 08:27:16.61ID:6oAKTuRB 焦りすぎ
780デフォルトの名無しさん
2021/08/18(水) 09:49:36.54ID:zZ9UTeBf >>778
ああ分かった /VIP(?<=IP)/ というのはVIPの右に(?)がある事からしてVIPのPの右の位置にマシンがカーソルを合わせて次に<という左矢印がある事からしてカーソルの左側にPがあるかどうかを探って次にその一つ左にカーソルを動かしてそのカーソルの左側にIがあるかを探るって訳か
文字にするとややこしいけどイメージはしやすいな
ああ分かった /VIP(?<=IP)/ というのはVIPの右に(?)がある事からしてVIPのPの右の位置にマシンがカーソルを合わせて次に<という左矢印がある事からしてカーソルの左側にPがあるかどうかを探って次にその一つ左にカーソルを動かしてそのカーソルの左側にIがあるかを探るって訳か
文字にするとややこしいけどイメージはしやすいな
781デフォルトの名無しさん
2021/08/18(水) 10:53:19.72ID:tjZSC3cn > ニュー速VIP板ニュー速板
二つ目の「ニュー速」だけを対象にしたい
(?<=VIP板)ニュー速
前方に「VIP板」のある「ニュー速」
一つ目の「ニュー速」だけを対象にしたい
ニュー速(?=VIP板)
後方に「VIP板」のある「ニュー速」
二つ目の「ニュー速」だけを対象にしたい
(?<=VIP板)ニュー速
前方に「VIP板」のある「ニュー速」
一つ目の「ニュー速」だけを対象にしたい
ニュー速(?=VIP板)
後方に「VIP板」のある「ニュー速」
782デフォルトの名無しさん
2021/08/18(水) 11:43:36.15ID:h7WQfPHf (否|肯)定(先|後)読みは、^(行頭)や$(行末)と同様に"位置"にマッチするメタ文字(「アンカー」)として機能する
783デフォルトの名無しさん
2021/08/20(金) 00:20:17.08ID:qpe5vMDv ここにある正規表現サンプルのURLを取得する正規表現ですけど
間違ってないですか?
https://www.megasoft.co.jp/mifes/seiki/s310.html
urlに'があるurlだと'の後が取得できなくなる。
間違ってないですか?
https://www.megasoft.co.jp/mifes/seiki/s310.html
urlに'があるurlだと'の後が取得できなくなる。
784デフォルトの名無しさん
2021/08/20(金) 01:44:25.03ID:kY+JN5EE >>783
間違ってるけどメタ文字解説読めばそんなこと分かるだろ
間違ってるけどメタ文字解説読めばそんなこと分かるだろ
785デフォルトの名無しさん
2021/08/20(金) 03:11:03.15ID:WG/a2fPY 厳密なのはいつもの
http://www.din.or.jp/~ohzaki/perl.htm#httpURL
http://www.din.or.jp/~ohzaki/perl.htm#httpURL
786デフォルトの名無しさん
2021/08/20(金) 10:49:36.74ID:nGw5woYj これなんで5matchsなの?
https://i.imgur.com/nxnFsqo.jpg
https://i.imgur.com/nxnFsqo.jpg
787デフォルトの名無しさん
2021/08/20(金) 10:57:32.68ID:OdebcBr3 ピンクの線が5本表示されとるやろ
788デフォルトの名無しさん
2021/08/20(金) 14:58:31.43ID:bheJjdjJ (abc){0}(def){0}
789デフォルトの名無しさん
2021/08/20(金) 23:05:42.97ID:P1i1BIPh790デフォルトの名無しさん
2021/08/20(金) 23:47:12.81ID:WG/a2fPY 基本的にgreedyだから
791デフォルトの名無しさん
2021/08/21(土) 09:01:29.88ID:juYH2QqI abc(def)?|def
空文字に一致しないよう書くべき
空文字に一致しないよう書くべき
792デフォルトの名無しさん
2021/08/25(水) 01:56:14.92ID:DUWK9/dO windowsなんですが、正規表現を使ってファイルのリネームしたいです
hofajkfjda.jpg
fasfdajl.jpg
というファイルがあった場合
new1-hofajkfjda.jpg
new2-fasfdajl.jpg
としたいです
連番を含むのですが、正規表現で可能でしょうか?
また、何のツールを使うといいでしょうか?できればlinuxとwindowsで共通で使えるものがいいんですが。
hofajkfjda.jpg
fasfdajl.jpg
というファイルがあった場合
new1-hofajkfjda.jpg
new2-fasfdajl.jpg
としたいです
連番を含むのですが、正規表現で可能でしょうか?
また、何のツールを使うといいでしょうか?できればlinuxとwindowsで共通で使えるものがいいんですが。
793デフォルトの名無しさん
2021/08/25(水) 05:11:18.76ID:DJHRbWtG それ正規表現の話じゃないよねスレチ
ファイル名降順(昇順)で頭に(new連番-)付加ならFlexible Renamerとか色んなリネームソフトで出来る
任意の順ならバッチやPowerShell
後は該当スレでどうぞ
ファイル名降順(昇順)で頭に(new連番-)付加ならFlexible Renamerとか色んなリネームソフトで出来る
任意の順ならバッチやPowerShell
後は該当スレでどうぞ
794デフォルトの名無しさん
2021/08/25(水) 10:49:27.59ID:DUWK9/dO 正規表現では連番は無理なのですか?
795デフォルトの名無しさん
2021/08/25(水) 11:00:10.58ID:1f33yFBx 不可能じゃないけど、近所のコンビニへ行くのに絶対にプライベートジェットで行きたいですとか言われてる感じ
もっと他に簡単で向いている方法があるでしょって話
もっと他に簡単で向いている方法があるでしょって話
796デフォルトの名無しさん
2021/08/25(水) 11:02:04.86ID:pNx7VLY8 文字列の集合を表す記法が正規表現
連番という集合を示せるならできるかもね
自分は知らないけど
連番という集合を示せるならできるかもね
自分は知らないけど
797デフォルトの名無しさん
2021/08/25(水) 11:08:38.01ID:0azwHm+I798デフォルトの名無しさん
2021/08/25(水) 11:30:25.04ID:DUWK9/dO799デフォルトの名無しさん
2021/08/25(水) 11:40:19.51ID:b/tFJsW5 質問続けるならせめて礼くらい言ってからにしろ
そもそももうスレチなんだから他へ行け池沼
そもそももうスレチなんだから他へ行け池沼
800デフォルトの名無しさん
2021/08/25(水) 12:25:51.34ID:pNx7VLY8801デフォルトの名無しさん
2021/08/25(水) 13:21:49.43ID:T8xCLAXo Ruby で作った。
fileutils のDryRun を使ったので、実際には実行されない。
結果を予測して、表示するだけ
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/*.jpg"
target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す
Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each.with_index( 1 ) do |full_path, idx| # index は、1 から始まる
dest_path = target_dir + "/new#{ idx }-" + File.basename( full_path )
FileUtils::DryRun.move( full_path, dest_path )
end
出力
mv C:/Users/Owner/Documents/abc.jpg
C:/Users/Owner/Documents/new1-abc.jpg
mv C:/Users/Owner/Documents/xyz.jpg
C:/Users/Owner/Documents/new2-xyz.jpg
fileutils のDryRun を使ったので、実際には実行されない。
結果を予測して、表示するだけ
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/*.jpg"
target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す
Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each.with_index( 1 ) do |full_path, idx| # index は、1 から始まる
dest_path = target_dir + "/new#{ idx }-" + File.basename( full_path )
FileUtils::DryRun.move( full_path, dest_path )
end
出力
mv C:/Users/Owner/Documents/abc.jpg
C:/Users/Owner/Documents/new1-abc.jpg
mv C:/Users/Owner/Documents/xyz.jpg
C:/Users/Owner/Documents/new2-xyz.jpg
802デフォルトの名無しさん
2021/08/25(水) 18:27:43.69ID:WqMYsX4p 複数行モード出なくても改行に一致させる事は可能ですか?
803デフォルトの名無しさん
2021/08/25(水) 23:49:57.87ID:HwQGLaDN 一致と呼んでいいのか分からないけど$が改行に対応すると思う
文字セットには使えないけどab(c|$)みたいな分岐は可能
文字セットには使えないけどab(c|$)みたいな分岐は可能
804デフォルトの名無しさん
2021/08/26(木) 04:30:31.47ID:UZ8JqWyB 複数行モードって何?
mオプション(マルチラインモード)のこと?
それとも逆にオプションなし通常の場合やsオプション(シングルラインモード)のこと?
これの違いは解説でも読めば分かるけど
^ $ . の動作の違いってだけだから、\n,\rはどの場合でも有効だよ
mオプション(マルチラインモード)のこと?
それとも逆にオプションなし通常の場合やsオプション(シングルラインモード)のこと?
これの違いは解説でも読めば分かるけど
^ $ . の動作の違いってだけだから、\n,\rはどの場合でも有効だよ
805デフォルトの名無しさん
2021/08/26(木) 08:14:39.00ID:nEHOiDh0 ありがとうございます
806デフォルトの名無しさん
2021/08/26(木) 15:15:16.56ID:Yy835424 JavaScriptの正規表現によるmatch検索で、「10918」ピッタリの数が存在するか調べたいときのことです
「1091」でも検索に引っかかってしまいます。
どうしたらよいでしょうか
以下の条件では10918だけでなく1091でも検索に引っ掛かります
let a = 1091;
new RegExp(`(?<!\d+)${a}(?!\d+)`, "i")
「1091」でも検索に引っかかってしまいます。
どうしたらよいでしょうか
以下の条件では10918だけでなく1091でも検索に引っ掛かります
let a = 1091;
new RegExp(`(?<!\d+)${a}(?!\d+)`, "i")
807デフォルトの名無しさん
2021/08/26(木) 15:17:19.26ID:Yy835424 >>806に追記
データは場合によっては「数字 数字 数字」になっており、そこから特定の数字だけ存在するか調べたいです
データは場合によっては「数字 数字 数字」になっており、そこから特定の数字だけ存在するか調べたいです
808デフォルトの名無しさん
2021/08/26(木) 15:44:49.58ID:K931sT/w \d+ → \\d
809デフォルトの名無しさん
2021/08/26(木) 16:01:36.08ID:a0WUR1Wk 関係ないけどlookbehind内で正規表現が使えない言語とか多いのな
810デフォルトの名無しさん
2021/08/26(木) 16:10:30.57ID:Yy835424 >>808
出来たありがとう
出来たありがとう
811デフォルトの名無しさん
2021/08/26(木) 17:04:06.18ID:/x6E5kVC 区切りがあるならlook aroundする必要ないよね
812デフォルトの名無しさん
2021/08/26(木) 19:13:53.21ID:1/m60R21813デフォルトの名無しさん
2021/08/27(金) 16:27:34.54ID:kYh+qXrW aa●abbbcccd□ddeee
aa□abbbcccd●ddeee
両方にヒット表現をお願いします
aa□abbbcccd●ddeee
両方にヒット表現をお願いします
814デフォルトの名無しさん
2021/08/27(金) 16:35:14.96ID:zrk6+77w ^a
815デフォルトの名無しさん
2021/08/27(金) 16:35:19.05ID:7nxBSwRn そのまんまであれば
aa[●□]abbbcccd[●□]ddeee
aa[●□]abbbcccd[●□]ddeee
816デフォルトの名無しさん
2021/08/27(金) 16:47:10.72ID:kYh+qXrW あ、そうか
aa●abbbcccd●ddeee
aa□abbbcccd□ddeee
はヒットしてほしくないのです
aa●abbbcccd●ddeee
aa□abbbcccd□ddeee
はヒットしてほしくないのです
817デフォルトの名無しさん
2021/08/27(金) 16:56:56.42ID:mGcBpOgN じゃあ
(aa●abbbcccd□ddeee|aa□abbbcccd●ddeee)
(aa●abbbcccd□ddeee|aa□abbbcccd●ddeee)
818デフォルトの名無しさん
2021/08/27(金) 17:06:33.96ID:kYh+qXrW819デフォルトの名無しさん
2021/08/27(金) 17:09:48.92ID:56S9Iaf9 全体をマッチ対象にしたいの?
820デフォルトの名無しさん
2021/08/27(金) 17:45:24.98ID:ldxLRyEW >>816
aa([●□])abbbcccd(?!\1)[●□]ddeee
aa([●□])abbbcccd(?!\1)[●□]ddeee
821デフォルトの名無しさん
2021/08/27(金) 19:46:53.21ID:FthY+dex EmEditorはしらないなー
(?m:(.*●.*□.*)|(.*□.*●.*))
(?m:(.*●.*□.*)|(.*□.*●.*))
822デフォルトの名無しさん
2021/08/28(土) 05:34:33.30ID:Z+kCS9um .+?([●□]).+(?!\1)[●□].+
823デフォルトの名無しさん
2021/08/28(土) 08:18:57.05ID:3w95mdWV >>818
そのダイアログはCtrl+Cでテキストコピーできると思うからググりやすいように
コピペしてほしいな
あとEmEditorはBoost.RegexとOnigmo(鬼雲)を使い分けられるから、
オプションでどっち使ってるのかも教えて
https://jp.emeditor.com/text-editor-features/history/new-in-version-15-7/
そのダイアログはCtrl+Cでテキストコピーできると思うからググりやすいように
コピペしてほしいな
あとEmEditorはBoost.RegexとOnigmo(鬼雲)を使い分けられるから、
オプションでどっち使ってるのかも教えて
https://jp.emeditor.com/text-editor-features/history/new-in-version-15-7/
824デフォルトの名無しさん
2021/08/28(土) 10:30:00.05ID:2Y0XlSPP >>823
---------------------------
EmEditor
---------------------------
The complexity of matching the regular expression exceeded predefined bounds. Try refactoring the regular expression to make each choice made by the state machine unambiguous. This exception is thrown to prevent "eternal" matches that take an indefinite period time to locate.
---------------------------
OK
---------------------------
例示してもらった表現いずれも同様のメッセージが出てましたが、なんとOnigmoに変更したら出なくなりました。
いろいろ新しく知ることが出来ました
---------------------------
EmEditor
---------------------------
The complexity of matching the regular expression exceeded predefined bounds. Try refactoring the regular expression to make each choice made by the state machine unambiguous. This exception is thrown to prevent "eternal" matches that take an indefinite period time to locate.
---------------------------
OK
---------------------------
例示してもらった表現いずれも同様のメッセージが出てましたが、なんとOnigmoに変更したら出なくなりました。
いろいろ新しく知ることが出来ました
825デフォルトの名無しさん
2021/08/28(土) 10:38:46.36ID:gjZsNEUJ (?!\1)ってどういう意味?
826デフォルトの名無しさん
2021/08/28(土) 11:02:34.45ID:o77XzsS5 >>825
「直前に"一つ目のパターン"がない位置」を指すメタ表現
「直前に"一つ目のパターン"がない位置」を指すメタ表現
827デフォルトの名無しさん
2021/08/28(土) 11:25:40.94ID:m2ZH6alf 日本語的には"直後に"じゃね?
読んで行く方向、カーソルの前方だとしても直前だと意味が逆転しそう
読んで行く方向、カーソルの前方だとしても直前だと意味が逆転しそう
828デフォルトの名無しさん
2021/08/28(土) 13:02:42.57ID:rTzGvJSm829デフォルトの名無しさん
2021/08/28(土) 13:33:13.98ID:gjZsNEUJ ありがとう完全に理解した
\1 は ([●□]) のことを指してて
(?!\1)[●□] で前の ([●□]) で選んだものと被らないようにしてるわけか
\1 は ([●□]) のことを指してて
(?!\1)[●□] で前の ([●□]) で選んだものと被らないようにしてるわけか
830デフォルトの名無しさん
2021/08/28(土) 15:08:17.46ID:F14AY+cI >>828
(?!\1) は「1つめの括弧で一致した内容はこの位置(の直後)には現れない」という言明
([●□]) が ● に一致したなら (?!\1) は (?!●)
([●□]) が □ に一致したなら (?!\1) は (?!□)
なので最初の [●□] と二つめの [●□] では必ず互いに異なる文字が一致する、という具合
(?!\1) は「1つめの括弧で一致した内容はこの位置(の直後)には現れない」という言明
([●□]) が ● に一致したなら (?!\1) は (?!●)
([●□]) が □ に一致したなら (?!\1) は (?!□)
なので最初の [●□] と二つめの [●□] では必ず互いに異なる文字が一致する、という具合
831デフォルトの名無しさん
2021/08/28(土) 15:43:56.56ID:rTzGvJSm >>830
ああなるほどありがとう!
ああなるほどありがとう!
832デフォルトの名無しさん
2021/09/03(金) 00:14:54.74ID:X1LFwexk ●Regular Expressionの使用環境
さくらエディタ
●検索か置換か?
検索
●説明
ある文字列を含まない形で最短一致させたい
●対象データ
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
という1行の文書です。
●希望する結果
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
^^^^^^^^^
「.*【猫を含まない】」
というような正規表現で、上記のように、
猫を含まない最初の「」に最短一致でマッチする結果を得たいのです。
どなたかお詳しい方、ご教示くださいませ
さくらエディタ
●検索か置換か?
検索
●説明
ある文字列を含まない形で最短一致させたい
●対象データ
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
という1行の文書です。
●希望する結果
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
^^^^^^^^^
「.*【猫を含まない】」
というような正規表現で、上記のように、
猫を含まない最初の「」に最短一致でマッチする結果を得たいのです。
どなたかお詳しい方、ご教示くださいませ
833デフォルトの名無しさん
2021/09/03(金) 00:17:33.53ID:X1LFwexk 連投すみません。
^^^^^^
がズレました。
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
のうち、3つ目のカギ括弧、
つまり、1つめの「吾輩は犬」にマッチする正規表現を探しております。
^^^^^^
がズレました。
「吾輩は猫」「吾輩は三毛猫」「吾輩は犬」「吾輩は犬」
のうち、3つ目のカギ括弧、
つまり、1つめの「吾輩は犬」にマッチする正規表現を探しております。
834デフォルトの名無しさん
2021/09/03(金) 00:36:24.12ID:OHAz9Fu/ 「[^猫]*?」
835デフォルトの名無しさん
2021/09/03(金) 02:33:55.38ID:X1LFwexk >>834
すいません><
例題を単純化しすぎました。
せっかくご回答いただいたのに申し訳ないです。
「吾輩はネコである」「吾輩はミケネコである」「吾輩は「ネコ」である」「吾輩はイヌである」
というように、排除したい文字列(ネコ)は複数文字なんです。さらに、カギ括弧が二重の可能性があります。
カギ括弧内にネコを含まないものなら、イヌ以外でもなにがマッチしても問題ありません。
左から見て内部に「ネコ」を含むカギ括弧を排除していき、最初にネコを含まないカギ括弧にマッチさせたいのです。
すいません><
例題を単純化しすぎました。
せっかくご回答いただいたのに申し訳ないです。
「吾輩はネコである」「吾輩はミケネコである」「吾輩は「ネコ」である」「吾輩はイヌである」
というように、排除したい文字列(ネコ)は複数文字なんです。さらに、カギ括弧が二重の可能性があります。
カギ括弧内にネコを含まないものなら、イヌ以外でもなにがマッチしても問題ありません。
左から見て内部に「ネコ」を含むカギ括弧を排除していき、最初にネコを含まないカギ括弧にマッチさせたいのです。
836デフォルトの名無しさん
2021/09/03(金) 02:34:57.11ID:1+MNr6V9 ^.*?\K「(?~猫|」)」
^.*?\K「[^猫」]*+」
^.*?\K「[^猫」]*+」
837デフォルトの名無しさん
2021/09/03(金) 02:39:58.48ID:1+MNr6V9 ^.*?\K「(?~ネコ|」)」
838デフォルトの名無しさん
2021/09/03(金) 02:56:17.42ID:X1LFwexk839デフォルトの名無しさん
2021/09/03(金) 03:09:51.13ID:X1LFwexk 「(?~ネコ|」)の、?~は、「不在繰り返し」というのですね。
ということは、「(?~ネコ|」)は、
「の後に、【ネコ】の不在繰り返し 又は 」がくるもの、という意味ですね。
不在繰り返しなんて便利な表現があったとは…
ご親切にありがとうございます。
ということは、「(?~ネコ|」)は、
「の後に、【ネコ】の不在繰り返し 又は 」がくるもの、という意味ですね。
不在繰り返しなんて便利な表現があったとは…
ご親切にありがとうございます。
840デフォルトの名無しさん
2021/09/04(土) 02:41:25.14ID:ExeocnPJ > ?~は、「不在繰り返し」というのですね
違う。?~ だけでは意味を成さない
(?~式) 「非包含オペレータ」 "式" を含まない文字列に一致する
式にあたる部分は "ネコ|」" なので "ネコ" と "」" を含まない文字列に一致
違う。?~ だけでは意味を成さない
(?~式) 「非包含オペレータ」 "式" を含まない文字列に一致する
式にあたる部分は "ネコ|」" なので "ネコ" と "」" を含まない文字列に一致
841デフォルトの名無しさん
2021/09/04(土) 10:50:54.40ID:vsW0UBqv 非包含オペレータと不在繰り返しは紛らわしいな
(?~ネコ)がネコのネにマッチするかしないか
(?~ネコ)がネコのネにマッチするかしないか
842デフォルトの名無しさん
2021/09/04(土) 11:49:17.86ID:KRHaMmez 「吾輩はネコである」
「(?~ネコ)」 不一致
「(?~ネコ)(?~ネコ)」 一致
「(?~(?=ネコ))(?~ネコ)」 不一致
「(?~(?=ネコ))(?~(?<=ネコ))」
「ネコ」 不一致
「吾輩はネコ」 一致
「吾輩はネコである」 不一致
「(?~(?=ネコ).)(?~.(?<=ネコ))」
「ネコ」 不一致
「吾輩はネコ」 不一致
「吾輩はネコである」 不一致
「(?~ネコ)」 不一致
「(?~ネコ)(?~ネコ)」 一致
「(?~(?=ネコ))(?~ネコ)」 不一致
「(?~(?=ネコ))(?~(?<=ネコ))」
「ネコ」 不一致
「吾輩はネコ」 一致
「吾輩はネコである」 不一致
「(?~(?=ネコ).)(?~.(?<=ネコ))」
「ネコ」 不一致
「吾輩はネコ」 不一致
「吾輩はネコである」 不一致
843デフォルトの名無しさん
2021/09/04(土) 15:57:28.08ID:e0R2hmQ/ この不在繰り返しを、Python3.6のreモジュールで書く方法はありますか?
844デフォルトの名無しさん
2021/09/08(水) 12:26:11.39ID:R6BptgGx むずすぎて全然分からん
まぁPythonで使えんみたいやしいいか
まぁPythonで使えんみたいやしいいか
845デフォルトの名無しさん
2021/09/08(水) 14:14:17.23ID:QqH5BAVe 文字列の否定は否定先読みで
re.findall("「(?:(?!ネコ).)*」", string)
re.findall("「(?:(?!ネコ).)*」", string)
846デフォルトの名無しさん
2021/09/08(水) 15:37:03.14ID:bwkSQigi (?~abc) "abc"に一致しない文字列に一致。"abc"の"a","ab","bc","c"に一致する
(?:(?!abc).)* "abc"の"a"に一致しない文字列
(?:.(?<!abc))* "abc"の"c"に一致しない文字列
abc に対し
(?~abc)c 一致
(?:(?!abc).)*c 不一致
(?:.(?<!abc))*c 一致
(?:(?!abc).)* "abc"の"a"に一致しない文字列
(?:.(?<!abc))* "abc"の"c"に一致しない文字列
abc に対し
(?~abc)c 一致
(?:(?!abc).)*c 不一致
(?:.(?<!abc))*c 一致
847デフォルトの名無しさん
2021/09/15(水) 04:13:47.03ID:2Sm06Jhf (?~式) 非包含式
(?~) 非包含オペレータ(演算子) (被演算子は~と)の間に内挿される)
/* 田中さんの元論文がこの使い分けを間違ってるわけだが */
概念を語る場合は、繰り返しや文字クラスや選択のように、単に「非包含」と呼ぶ
(?~) 非包含オペレータ(演算子) (被演算子は~と)の間に内挿される)
/* 田中さんの元論文がこの使い分けを間違ってるわけだが */
概念を語る場合は、繰り返しや文字クラスや選択のように、単に「非包含」と呼ぶ
848デフォルトの名無しさん
2021/09/17(金) 16:17:14.17ID:J/w/zJeW 自己肯定感の低い人が仕事できない本当の理由
https://www.youtube.com/watch?v=BZyX8g1XuXI
【致命的】個人で稼ぐのに向いていない人の特徴7選
https://www.youtube.com/watch?v=PqqCiMMHMy4
自己肯定感の低い人にオススメの副業5選
https://www.youtube.com/watch?v=n2uiQcMmOAg
【質問力】雑魚と思われてしまうダメな質問の仕方5選
https://www.youtube.com/watch?v=eQceW_AcJjM
集団の中で落ちこぼれ組がやりがちなこと
https://www.youtube.com/watch?v=6cuCPaRvAv0
【人気者の基準】有名にならないと言われない暴言3選
https://www.youtube.com/watch?v=YhK7zgvRha0
【本質】みんながフリーランスになれない本当の理由
https://www.youtube.com/watch?v=vA4hTswPgEg
https://www.youtube.com/watch?v=BZyX8g1XuXI
【致命的】個人で稼ぐのに向いていない人の特徴7選
https://www.youtube.com/watch?v=PqqCiMMHMy4
自己肯定感の低い人にオススメの副業5選
https://www.youtube.com/watch?v=n2uiQcMmOAg
【質問力】雑魚と思われてしまうダメな質問の仕方5選
https://www.youtube.com/watch?v=eQceW_AcJjM
集団の中で落ちこぼれ組がやりがちなこと
https://www.youtube.com/watch?v=6cuCPaRvAv0
【人気者の基準】有名にならないと言われない暴言3選
https://www.youtube.com/watch?v=YhK7zgvRha0
【本質】みんながフリーランスになれない本当の理由
https://www.youtube.com/watch?v=vA4hTswPgEg
849デフォルトの名無しさん
2021/09/27(月) 17:11:29.79ID:yz6wzePk 下記のソフトで書庫ファイルをリネームしたいのですが、正規表現が必須のようです。
どうかご教示をお願いできませんでしょうか。
https://www.vector.co.jp/soft/winnt/util/se481411.html
【書庫内のファイルの先頭に、親フォルダ名を追加したい】
例: ○X△.zip 内の 00.jpg~99.jpg を ○X△.zip.00jpg~○X△.zip.99.jpg にしたい
どうかご教示をお願いできませんでしょうか。
https://www.vector.co.jp/soft/winnt/util/se481411.html
【書庫内のファイルの先頭に、親フォルダ名を追加したい】
例: ○X△.zip 内の 00.jpg~99.jpg を ○X△.zip.00jpg~○X△.zip.99.jpg にしたい
850849
2021/09/27(月) 18:00:06.98ID:yz6wzePk 訂正させて下さい。
親フォルダ名じゃなく親ファイル名でした。
下記のソフトで書庫ファイルをリネームしたいのですが、正規表現が必須のようです。
どうかご教示をお願いできませんでしょうか。
https://www.vector.co.jp/soft/winnt/util/se481411.html
【書庫内のファイルの先頭に親ファイル名を追加したい】
例: ○X△.zip 内の 00.jpg~99.jpg を ○X△.zip.00jpg~○X△.zip.99.jpg にしたい
親フォルダ名じゃなく親ファイル名でした。
下記のソフトで書庫ファイルをリネームしたいのですが、正規表現が必須のようです。
どうかご教示をお願いできませんでしょうか。
https://www.vector.co.jp/soft/winnt/util/se481411.html
【書庫内のファイルの先頭に親ファイル名を追加したい】
例: ○X△.zip 内の 00.jpg~99.jpg を ○X△.zip.00jpg~○X△.zip.99.jpg にしたい
851デフォルトの名無しさん
2021/09/27(月) 18:20:46.41ID:QHV+6MAZ そのソフトの機能とあなたがしたい事が正確にはわからんが、
正規表現で自動でディレクトリ名は入らんよ。
それをやりたかったら普通はプログラミングの領域。
単に先頭に指定文字列を入れたいなら
検索:^
置換:○X△.zip
正規表現で自動でディレクトリ名は入らんよ。
それをやりたかったら普通はプログラミングの領域。
単に先頭に指定文字列を入れたいなら
検索:^
置換:○X△.zip
852デフォルトの名無しさん
2021/09/27(月) 18:36:25.58ID:W1wq+c4c >>849
^:○X△.zip
アーカイブ名を参照するメタ文字が用意されていれば別だけど、一般的には都度指定するしかない
もし処理対象アーカイブが一定数以上あったり、定期的に一定数以上のアーカイブに対して同処理が必要になることが予想される場合、自分なら、1) 作業フォルダに解凍、2) リネーム、3) 再圧縮、4) 元アーカイブに上書きコピー、5) 後片付け、を指定フォルダ以下のアーカイブに対して実行するバッチファイルを書いて、それを実行すると思う(7z)
^:○X△.zip
アーカイブ名を参照するメタ文字が用意されていれば別だけど、一般的には都度指定するしかない
もし処理対象アーカイブが一定数以上あったり、定期的に一定数以上のアーカイブに対して同処理が必要になることが予想される場合、自分なら、1) 作業フォルダに解凍、2) リネーム、3) 再圧縮、4) 元アーカイブに上書きコピー、5) 後片付け、を指定フォルダ以下のアーカイブに対して実行するバッチファイルを書いて、それを実行すると思う(7z)
853デフォルトの名無しさん
2021/09/27(月) 19:31:31.78ID:wTAYfgov >>850
親ファイル(zipファイルのことだよね?)の名前を人手で入れるなら
^:○X△.zip
みたいな感じで行けるんじゃね?
http://frostmoon.sa
kura.ne.jp/gui4reces/gui4reces0018ss_rename.png
親ファイル(zipファイルのことだよね?)の名前を人手で入れるなら
^:○X△.zip
みたいな感じで行けるんじゃね?
http://frostmoon.sa
kura.ne.jp/gui4reces/gui4reces0018ss_rename.png
854デフォルトの名無しさん
2021/09/27(月) 22:31:45.47ID:2WG9Jybb ファイル名に拡張子以外のドットは特別な理由でも無い限り使わないようにした方が良い
あと質問内容は正規表現では無くソフトの使い方のようなので微妙にスレチ
作者の宣伝?
あと質問内容は正規表現では無くソフトの使い方のようなので微妙にスレチ
作者の宣伝?
855デフォルトの名無しさん
2021/09/28(火) 09:31:17.72ID:fMeX4han 皆さん、ありがとうございます。
せっかくアドバイスを頂いたのですが、何が何やらさっぱりで・・・
せめて正規表現を少しでもかじってから再度教えを請いたいと考えていたので返信が遅れてしまいました。
しかし・・・
正規表現のサイトを少し覗いてみたのですが私には敷居が高すぎて・・
もう少し頑張ってみるつもりですが、かなりきつそうです
せっかくアドバイスを頂いたのですが、何が何やらさっぱりで・・・
せめて正規表現を少しでもかじってから再度教えを請いたいと考えていたので返信が遅れてしまいました。
しかし・・・
正規表現のサイトを少し覗いてみたのですが私には敷居が高すぎて・・
もう少し頑張ってみるつもりですが、かなりきつそうです
856デフォルトの名無しさん
2021/09/28(火) 09:38:51.90ID:ZQP3z5os >>855
アドバイスじゃなくて答えが書いてあるんだから、せめて試せよ
アドバイスじゃなくて答えが書いてあるんだから、せめて試せよ
857849
2021/09/28(火) 10:21:59.42ID:fMeX4han す、すみません。
検索文字列とか置換文字列とか難しく考えすぎて、
^:○X△.zip が回答そのものだったとは思いませんでした。
試してみました。
しかし、ログでは成功してるはずなのに実際のファイルはリネームされていません。
ソフトの使用方法がおぼつかないため、もう少し試行錯誤してみます。
とりあえずご報告だけさせて頂きました。
検索文字列とか置換文字列とか難しく考えすぎて、
^:○X△.zip が回答そのものだったとは思いませんでした。
試してみました。
しかし、ログでは成功してるはずなのに実際のファイルはリネームされていません。
ソフトの使用方法がおぼつかないため、もう少し試行錯誤してみます。
とりあえずご報告だけさせて頂きました。
858デフォルトの名無しさん
2021/09/28(火) 13:29:43.27ID:T0yrrR3v ○X△を○X△のまま使っただろ?
859849
2021/09/28(火) 20:59:21.69ID:fMeX4han 何でわかるんですかw
第一階層までしかリネームできないみたいです
そうなると、解凍してリネームして再圧縮が正解ですね。
バッチファイルは・・・・・・無理ですが
第一階層までしかリネームできないみたいです
そうなると、解凍してリネームして再圧縮が正解ですね。
バッチファイルは・・・・・・無理ですが
860デフォルトの名無しさん
2021/10/04(月) 16:07:06.15ID:N0nKW8hc 教えてください。
AAAA
AAAA(1)
AAAA(2)
AAAA(3)
という中から
()付きのものだけ抜き出す式はどう描くのでしょうか()の中身ではなくてAAA(3)などを丸ごとです。
お願いします。
AAAA
AAAA(1)
AAAA(2)
AAAA(3)
という中から
()付きのものだけ抜き出す式はどう描くのでしょうか()の中身ではなくてAAA(3)などを丸ごとです。
お願いします。
861デフォルトの名無しさん
2021/10/04(月) 16:24:14.46ID:bhYXHQji ^.*?¥(.*?¥)$
862デフォルトの名無しさん
2021/10/04(月) 17:32:08.96ID:N0nKW8hc863デフォルトの名無しさん
2021/10/04(月) 17:52:45.16ID:N0nKW8hc 次々すみません()の中は半角1文字の数字です。
864デフォルトの名無しさん
2021/10/04(月) 17:58:58.66ID:bhYXHQji865デフォルトの名無しさん
2021/10/04(月) 18:06:36.32ID:bhYXHQji あと、()が全角と半角では扱いが異なるから書き込むたびに変わってちゃダメ。
全角と半角両方に対応させたいなら^.*?[¥((][0-9][¥))]
全角と半角両方に対応させたいなら^.*?[¥((][0-9][¥))]
866デフォルトの名無しさん
2021/10/04(月) 19:38:23.48ID:zsq22U2a 拡張子は含めるの?
867デフォルトの名無しさん
2021/10/04(月) 19:42:51.89ID:qPYIGz+e .*\([0-9]\).*
868デフォルトの名無しさん
2021/10/15(金) 13:06:48.14ID:Wvwj+LKl うんこおおおおおおおおおお
↓
うんこ!!!!!!!!
ってjavascriptで正規表現で変換したいです
text.replace(/うん(こ)+/,"!")だと明らかに上手く行きませんがどうしたらよいのでしょうか?
↓
うんこ!!!!!!!!
ってjavascriptで正規表現で変換したいです
text.replace(/うん(こ)+/,"!")だと明らかに上手く行きませんがどうしたらよいのでしょうか?
869デフォルトの名無しさん
2021/10/15(金) 13:30:38.03ID:vygdYOMS 検索から違ってるし、function使わんと同回数繰り返すとかは無理
text.replace(/(うんこ)(.+)/,function(s,g1,g2){return g1+Array(g2.length+1).join('!')});
text.replace(/(うんこ)(.+)/,function(s,g1,g2){return g1+Array(g2.length+1).join('!')});
870デフォルトの名無しさん
2021/10/16(土) 08:23:59.89ID:akCvqHZs 先頭が-か+か0-9
以降0-9のみ
はどう書きますか?
-123 OK
12+3 NG
以降0-9のみ
はどう書きますか?
-123 OK
12+3 NG
871デフォルトの名無しさん
2021/10/16(土) 08:43:22.00ID:6ga3nra2 ^[\-+]?[0-9]+
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も ★2 [1ゲットロボ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- パンダ 危機感なし [399583221]
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- んなっても良いお🏡
- 日本人、歴史も経済も分からず貧乏に耐えかねて第二次日中戦争を求めてしまう…ヤバイよ [819729701]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 【悲報】けんもめん、含蓄が読めない [389326466]
