Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part15
https://mevius.5ch.net/test/read.cgi/tech/1568640311/
次スレは>>980宜しく
天ぷら等>>2以降
探検
Regular Expression(正規表現) Part16
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2021/11/03(水) 19:50:01.71ID:ebAE+z9+454デフォルトの名無しさん
2022/07/06(水) 06:47:28.85ID:TTp+bFLp 英語名を変えさせたら良い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い
455298
2022/07/06(水) 06:53:49.49ID:ZAN9ui5m456デフォルトの名無しさん
2022/07/06(水) 07:02:49.27ID:5qGkM3IH ここの回答者はそう勘違いしてるのを知ってて何も助言しなかったんだぞ、馬鹿にして笑ってたんだよ
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった
457298
2022/07/06(水) 07:06:06.70ID:ZAN9ui5m 秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511
~
~
で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++ ←は>>314さんの教えてくれたヤツ。
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511
~
~
で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++ ←は>>314さんの教えてくれたヤツ。
458デフォルトの名無しさん
2022/07/06(水) 07:09:45.51ID:SZC2q9b+ これ非包含演算子に粘着してるのと同じやつだろ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ
459デフォルトの名無しさん
2022/07/06(水) 07:46:05.23ID:o/55z/m0460298
2022/07/06(水) 08:07:45.17ID:ZAN9ui5m461デフォルトの名無しさん
2022/07/06(水) 11:44:54.56ID:MXaUuSJv まず英語の勉強をするべき
462デフォルトの名無しさん
2022/07/06(水) 12:10:15.16ID:c6fRPAAn CSV の正規表現なんて、数千行ぐらい掛かるだろ。
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル
463デフォルトの名無しさん
2022/07/06(水) 13:40:21.16ID:gR1YTmZs464デフォルトの名無しさん
2022/07/06(水) 15:43:31.34ID:MXaUuSJv KEИTAはでたらめ
465462
2022/07/06(水) 17:15:52.66ID:c6fRPAAn 行区切り文字の改行、列区切り文字のカンマ、
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない
466デフォルトの名無しさん
2022/07/06(水) 17:19:01.24ID:QeuQIz9d なんか話脱線マウントしまくって会議やコードレビュー下手くそで顰蹙を買いまくってそうな人来てるやん
467デフォルトの名無しさん
2022/07/06(水) 17:55:19.63ID:gR1YTmZs >>465
混ぜなきゃいいのでは
混ぜなきゃいいのでは
468デフォルトの名無しさん
2022/07/06(水) 19:01:53.46ID:kQhbtDqq いつも文体一緒だからバレる
469デフォルトの名無しさん
2022/07/06(水) 19:30:39.95ID:5qGkM3IH >> 298
「店」が無い店もあったからHTMLソースから取り出すようにしたよ
ブラウザでHTMLソースを表示させてnotepad++にソースをコピペしてから置換して
1回目の検索欄
^[^\r\n]*<h4\s+[^>]*class=["']?shopList[_\-\s]*storeName["']?[^>]*>\s*<span[^>]*>\s*</span\s*>\s*([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*
</h4\s*>(?:(?!<dd[^>]*>\s*〒|<h4)(?:[\r\n]|.))*<dd[^>]*>\s*〒\s*[\d\-]+\s+([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*</dd\s*>[^\r\n]*$
1回目の置換欄
うんこ$1,$2
2回目の検索欄
^(?!うんこ)[^\r\n]*$[\r\n]+
1回目の置換欄
( 空欄にして )
2回の置換が終われば店舗一覧が完成しているはず
1回目の検索欄は長すぎるから2行に分割したよ、1行に繋げてから使って
検索欄や置換欄に記入するときは前後に余計なスペースやタブ文字が紛れ込まないように
HTMLの細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ
「店」が無い店もあったからHTMLソースから取り出すようにしたよ
ブラウザでHTMLソースを表示させてnotepad++にソースをコピペしてから置換して
1回目の検索欄
^[^\r\n]*<h4\s+[^>]*class=["']?shopList[_\-\s]*storeName["']?[^>]*>\s*<span[^>]*>\s*</span\s*>\s*([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*
</h4\s*>(?:(?!<dd[^>]*>\s*〒|<h4)(?:[\r\n]|.))*<dd[^>]*>\s*〒\s*[\d\-]+\s+([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*</dd\s*>[^\r\n]*$
1回目の置換欄
うんこ$1,$2
2回目の検索欄
^(?!うんこ)[^\r\n]*$[\r\n]+
1回目の置換欄
( 空欄にして )
2回の置換が終われば店舗一覧が完成しているはず
1回目の検索欄は長すぎるから2行に分割したよ、1行に繋げてから使って
検索欄や置換欄に記入するときは前後に余計なスペースやタブ文字が紛れ込まないように
HTMLの細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ
470デフォルトの名無しさん
2022/07/06(水) 19:34:28.40ID:5qGkM3IH ミスった
1回目の置換欄
( 空欄にして )
これは2回目だね
1回目の置換欄
( 空欄にして )
これは2回目だね
471デフォルトの名無しさん
2022/07/06(水) 19:39:45.64ID:5qGkM3IH 全国の店舗一覧を取得したいならwgetなどで各店舗一覧ページをローカルに保存してからnotepad++のファイル一括置換でまとめて置換したほうが楽
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて
472デフォルトの名無しさん
2022/07/06(水) 23:10:34.54ID:gFUK7vgi ホンの少し複雑化しただけで頭の悪さや性格って浮かび上がるよねw
473デフォルトの名無しさん
2022/07/07(木) 16:29:53.46ID:ls1FMHZL そのまま正規表現1回でやるのと、改行の種類とかあったりなかったりする要素とか明らかに不要な要素を掃除してからやるのとどっちがいいですか
474デフォルトの名無しさん
2022/07/07(木) 16:37:27.46ID:3hUwVJb0 掃除して整形してからやるのがコスパ良いに決まってる
力業いくない
力業いくない
475デフォルトの名無しさん
2022/07/07(木) 17:27:59.03ID:EezL89dt ケースバイケースやろ
476デフォルトの名無しさん
2022/07/07(木) 17:45:22.88ID:QZNfJ5wA 答え合わせ出来るとか、間違いに気付き易いor間違い難いケースは1発
合ってるか分かり難い場合は間違い難い正規化式で段階踏む
合ってるか分かり難い場合は間違い難い正規化式で段階踏む
477デフォルトの名無しさん
2022/07/08(金) 12:52:02.00ID:/znuHP85 パイプ・フィルターみたいに、どんどん変換していく方が分かりやすい。
処理A | 処理B | 処理C
Ruby の正規表現では、3種類の改行を、\R と書ける
/\r\n|\r|\n/
/\R/
処理A | 処理B | 処理C
Ruby の正規表現では、3種類の改行を、\R と書ける
/\r\n|\r|\n/
/\R/
478デフォルトの名無しさん
2022/07/10(日) 17:44:55.47ID:0O2dRiW8 >possesive
ポジティブ
ポジティブ
479デフォルトの名無しさん
2022/07/16(土) 01:09:47.27ID:gUwlqT3Y そして誰もいなくなった
480デフォルトの名無しさん
2022/07/16(土) 09:09:55.88ID:L4T2PUf2 民度の低い異常者が常駐してたらそりゃ関わりたくないもん
481デフォルトの名無しさん
2022/07/16(土) 11:12:47.12ID:WasoqaBj 自己紹介乙
482デフォルトの名無しさん
2022/07/20(水) 06:49:04.62ID:v4tHM0fs ●Regular Expressionの使用環境
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字
を
同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字
を
同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。
483デフォルトの名無しさん
2022/07/20(水) 07:23:49.75ID:iuCM0uSo 説明にない[は何?
484デフォルトの名無しさん
2022/07/20(水) 08:35:20.99ID:jm1i1IHH485デフォルトの名無しさん
2022/07/20(水) 09:04:35.27ID:Fdf9zFh2 テスト
\[(.+?)(.*?\1)\](?\2)
\[(.+?)(.*?\1)\](?\2)
486デフォルトの名無しさん
2022/07/20(水) 16:27:05.86ID:f63hBcuy (.+).+?\1
$1
$1
487デフォルトの名無しさん
2022/07/20(水) 16:30:30.08ID:OlkAUELc [ wow & wow]
489デフォルトの名無しさん
2022/08/28(日) 01:14:30.52ID:y+9tLdhC 正規表現の先読み・後読み https://zenn.dev/usamik26/articles/regex-lookahead
490デフォルトの名無しさん
2022/08/28(日) 07:40:58.02ID:MbqzPdhg perlでは/.*hoge/より/.*?piyo/の方が圧倒的に速いのか
ステップ数は大して変わらなそうなのに
ステップ数は大して変わらなそうなのに
491デフォルトの名無しさん
2022/08/28(日) 08:17:37.04ID:e6Sjxbuq >>490
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから
492デフォルトの名無しさん
2022/08/28(日) 08:52:32.95ID:7Mb5USF7 >>491
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと
493デフォルトの名無しさん
2022/08/28(日) 09:11:11.32ID:dcB5AKwO >>492
そりゃそういうケースもあるけどそうでないケースの方が多いだろ
そりゃそういうケースもあるけどそうでないケースの方が多いだろ
494デフォルトの名無しさん
2022/08/28(日) 10:55:00.88ID:V92k17Tf 489の記事・コメントを見たけど
「.*hoge.*」
と
「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても
「.*hoge.*」
と
「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても
495デフォルトの名無しさん
2022/08/28(日) 12:06:13.62ID:3aiLuiYL マッチする場合はそれほどステップ数は変わらないけど
マッチしない場合のステップ数の差は大きいね
マッチしない場合のステップ数の差は大きいね
496デフォルトの名無しさん
2022/08/28(日) 12:10:20.88ID:iCw3MfJc (?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ)))
これって何か間違ってますか?280が消えない時があります
これって何か間違ってますか?280が消えない時があります
497デフォルトの名無しさん
2022/08/28(日) 12:33:21.57ID:4oWDpmI8 [22][88][00]
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし
498デフォルトの名無しさん
2022/08/28(日) 14:30:01.62ID:HKThARKH なぜ組み合わせたいのかがよくわからんな
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?
499デフォルトの名無しさん
2022/08/28(日) 14:36:53.39ID:q8tm2XHG 単発のNGの他に連鎖NGとかIDごとNGとかあるだろ
わからないなら黙ってろよ
わからないなら黙ってろよ
500デフォルトの名無しさん
2022/08/28(日) 16:16:08.48ID:XxcpkpFs ごめん
501デフォルトの名無しさん
2022/09/04(日) 01:47:12.24ID:0/i0sC9q GNU grep 3.8 (2022-09-02)から-Pオプションのリンク先がPCRE2になったらしい
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど
502デフォルトの名無しさん
2022/09/04(日) 07:42:45.45ID:pCQ9P7Vy 1
2
あ
10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?
2
あ
10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?
503デフォルトの名無しさん
2022/09/04(日) 08:41:45.13ID:x2tuNrOY ttps://www.simple-edition.com/prog_memo/number_range_regexp/
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
ttps://weblabo.oscasierra.net/tools/regex/
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
ttps://weblabo.oscasierra.net/tools/regex/
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?
504デフォルトの名無しさん
2022/09/04(日) 09:08:03.10ID:MIQciAoV >>503
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])
505デフォルトの名無しさん
2022/09/04(日) 09:46:10.78ID:ZQZ632xa506デフォルトの名無しさん
2022/09/04(日) 10:07:01.01ID:qlj2b1lm すまない
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮
507デフォルトの名無しさん
2022/09/04(日) 10:19:49.12ID:NNtN3+VI まあ案件次第だけど
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保守を含めて簡単かと思う
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保守を含めて簡単かと思う
508デフォルトの名無しさん
2022/09/13(火) 19:48:53.80ID:aae9uQ50 スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。
509デフォルトの名無しさん
2022/09/13(火) 20:02:34.86ID:BFM47HY2 (?<!^)000+(?!$)
-
-
510デフォルトの名無しさん
2022/09/13(火) 20:23:28.22ID:el3nukes 00000 → 0-0 ?
511デフォルトの名無しさん
2022/09/13(火) 20:37:38.14ID:G28B9gdh512デフォルトの名無しさん
2022/09/13(火) 21:45:26.67ID:aae9uQ50 508です。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。
513デフォルトの名無しさん
2022/09/13(火) 22:09:54.11ID:jeF3JQfM514デフォルトの名無しさん
2022/09/13(火) 22:20:12.97ID:GLLSFlxd 「文中(先頭及び文末以外)の0」が連続して3つ以上並ぶ部分
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」
515デフォルトの名無しさん
2022/09/13(火) 22:24:49.17ID:clq+OpKM ^([1-9]+)0+(\d+)$ --> $1-$2
でいかがでしょう
でいかがでしょう
516デフォルトの名無しさん
2022/09/13(火) 22:33:07.80ID:clq+OpKM あ、「ゼロ3つ以上」を満たしてなかった
また考えますー
また考えますー
517デフォルトの名無しさん
2022/09/13(火) 22:35:39.26ID:clq+OpKM ^([1-9]+)0{3,}(\d+)$ --> $1-$2
でしょーか
でしょーか
518デフォルトの名無しさん
2022/09/13(火) 22:46:39.11ID:7uE/UK4/ 010001
519デフォルトの名無しさん
2022/09/13(火) 23:08:19.66ID:G28B9gdh520デフォルトの名無しさん
2022/09/13(火) 23:09:06.59ID:G28B9gdh521デフォルトの名無しさん
2022/09/13(火) 23:10:13.89ID:aae9uQ50 みなさんありがとうございます!
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。
522デフォルトの名無しさん
2022/09/13(火) 23:20:09.73ID:aae9uQ50 そして自分でも要件を言葉にできておらず申し訳ありません
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000
↓
000012-34000
となります。
返信遅くなりすみません。
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000
↓
000012-34000
となります。
返信遅くなりすみません。
523デフォルトの名無しさん
2022/09/13(火) 23:44:59.39ID:G28B9gdh (?<!^)(?>0{3,})(?!$)
未test
最初のマッチだけ置換は以下
https://social.technet.microsoft.com/Forums/ja-JP/ad0f7263-3fd1-4545-b554-e796d27ef948/263682102112398125101248312481?forum=powershellja
未test
最初のマッチだけ置換は以下
https://social.technet.microsoft.com/Forums/ja-JP/ad0f7263-3fd1-4545-b554-e796d27ef948/263682102112398125101248312481?forum=powershellja
524デフォルトの名無しさん
2022/09/14(水) 00:51:16.34ID:4SNfctPQ525デフォルトの名無しさん
2022/09/14(水) 05:23:58.73ID:E5sTi1VY ([1-9])0000*([1-9][0-9]*)
$1-$2
$1-$2
526デフォルトの名無しさん
2022/09/14(水) 09:12:22.80ID:Kn3Wl+2J (?<=[1-9])(?>000+)(?!$)(.+)$
-$1
-$1
527デフォルトの名無しさん
2022/09/14(水) 09:38:59.41ID:s0UMl1ds (^[^0].*?)0{3,}([^0].*?$)
$1-$2
$1-$2
528デフォルトの名無しさん
2022/09/14(水) 10:42:18.62ID:6Qq1IObP529デフォルトの名無しさん
2022/09/14(水) 19:22:12.74ID:+0SwTq6N 508です。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。
530デフォルトの名無しさん
2022/09/14(水) 19:57:00.91ID:b2aEm1i9 回答にある正規表現は置換回数を指定できない置換方法でも大丈夫
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい
531デフォルトの名無しさん
2022/09/14(水) 22:22:31.78ID:+0SwTq6N >530
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。
532デフォルトの名無しさん
2022/09/18(日) 12:56:41.18ID:QaJ1iFM2 githubで結構探したんですがそれっぽいのが見つからず、お力お貸しください。
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"
533デフォルトの名無しさん
2022/09/18(日) 16:16:05.56ID:wjpqonb4534デフォルトの名無しさん
2022/09/18(日) 19:20:15.15ID:/uA/jgNo >>533
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。
535デフォルトの名無しさん
2022/09/18(日) 21:26:30.42ID:CbZe8FP4 "を
\"
や
\x22
に置き換えて試してみてわ
\"
や
\x22
に置き換えて試してみてわ
536デフォルトの名無しさん
2022/09/19(月) 16:41:30.36ID:4iw9Mtek537デフォルトの名無しさん
2022/09/20(火) 02:58:09.09ID:94I1wBUa 二重引用符のエスケープは重ねて""だな
"".*""\s
"".*""\s
538デフォルトの名無しさん
2022/10/29(土) 13:09:46.30ID:ec13kmtS ●Regular Expressionの使用環境
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000〜0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >= state_limit 16383
ng_mcclellan.cpp:buildMcClellan:590:state limit exceeded
rose_build_add.cpp:addOutfix:1779:could not build as either an NFA or a DFA
ng.cpp:addGraph:507:could not compile component 0 with 592 vertices
と言われて説明の例に限っては正規表現のコンパイルすら不可能です
32bit値は4バイト境界に限りませんが、ブロック先頭は4バイト境界なのでそこから高速化したいのですが
「(?>....)*?\K」を接頭しようとするとPCRE2_ANCHOREDはJITで使えませんし、そもそも遅くなるようです
今のところプログラム側でオフセットが4バイト境界のみを拾い、次の検索開始もアライメントしています
コールアウトもお察し…こういったパターンに適した書き方、又はCライブラリが有れば教えて欲しいです
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000〜0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >= state_limit 16383
ng_mcclellan.cpp:buildMcClellan:590:state limit exceeded
rose_build_add.cpp:addOutfix:1779:could not build as either an NFA or a DFA
ng.cpp:addGraph:507:could not compile component 0 with 592 vertices
と言われて説明の例に限っては正規表現のコンパイルすら不可能です
32bit値は4バイト境界に限りませんが、ブロック先頭は4バイト境界なのでそこから高速化したいのですが
「(?>....)*?\K」を接頭しようとするとPCRE2_ANCHOREDはJITで使えませんし、そもそも遅くなるようです
今のところプログラム側でオフセットが4バイト境界のみを拾い、次の検索開始もアライメントしています
コールアウトもお察し…こういったパターンに適した書き方、又はCライブラリが有れば教えて欲しいです
539デフォルトの名無しさん
2022/10/29(土) 19:31:13.26ID:9Ey1MUJ8540デフォルトの名無しさん
2022/10/29(土) 19:42:35.80ID:ec13kmtS >>539
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります
541デフォルトの名無しさん
2022/10/30(日) 10:24:48.15ID:dZd+t5oq スプレッドシートで20221030と入力されている数字を日付の表記?2022/10/30なのか10/30/2022なのかわからないけどDATEDIF関数に使える形に置換する正規表現ってどう書きますでしょうか
542デフォルトの名無しさん
2022/10/30(日) 11:55:42.97ID:oF72FRjI >>541
正規表現では無理。スレチ
DATE関数で日付にかDATEVALUE関数でシリアル値に変換
セルA1の値:20221030
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"2022/11/01","D")
正規表現では無理。スレチ
DATE関数で日付にかDATEVALUE関数でシリアル値に変換
セルA1の値:20221030
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"2022/11/01","D")
543デフォルトの名無しさん
2022/10/30(日) 12:28:15.07ID:S1PTRz+V544デフォルトの名無しさん
2022/11/02(水) 14:16:53.69ID:gx4Z74sz すいません。
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33
545デフォルトの名無しさん
2022/11/02(水) 14:20:50.51ID:4jxQNd6r ^\d+$
546デフォルトの名無しさん
2022/11/02(水) 14:26:53.26ID:gx4Z74sz ありがとうございました!
547デフォルトの名無しさん
2022/11/02(水) 14:39:57.52ID:Hz9+pCnD 00
00000000
012
003102
とかはええんかC言語だと8進数なんだけど
00000000
012
003102
とかはええんかC言語だと8進数なんだけど
548デフォルトの名無しさん
2022/11/02(水) 14:57:45.88ID:mLb2a5cx 最近は8進数を0oと書くのが主流じゃね?
549デフォルトの名無しさん
2022/11/02(水) 15:14:09.32ID:gx4Z74sz いやよくないのですが。。
550デフォルトの名無しさん
2022/11/02(水) 22:52:34.87ID:WMtJS4K4 >>547
なぜC言語?
なぜC言語?
551デフォルトの名無しさん
2022/11/03(木) 13:08:35.66ID:yr3S2O5F ^(?:0|[1-9]\d*+)$
552デフォルトの名無しさん
2022/11/03(木) 23:35:12.45ID:gGr9RQjz A(B(1), C(2)), B(3), C(4), A(D(5))の
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?
553デフォルトの名無しさん
2022/11/04(金) 00:21:55.02ID:Rv2RlvZT A\([BD]\([15]\)(, C\(2\))?\)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★3 [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★2 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 【悲報】ココイチ、売上増収も客離れが止まらずジリ貧。「さらなる値上げも視野」😳 [518915984]
- ネトウヨ「存立危機発言なんて無かった!!!!!!!!!」 [314039747]
- 【なぜ】安倍晋三の評価、地味に上がってる模様… [343591364]
- 円安株安債券安なんだが!終わりだねこの国😿 [929293504]
- 【画像】セクシー女優・天沢りんさん「お休み頂いてた半年間でこんな体になりました🪽🤍」👉予想通りの展開に [242521385]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
