[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
518: デフォルトの名無しさん [sage] 2022/09/13(火) 22:46:39.11 ID:7uE/UK4/ 010001 http://mevius.5ch.net/test/read.cgi/tech/1635936601/518
519: デフォルトの名無しさん [sage] 2022/09/13(火) 23:08:19.66 ID:G28B9gdh >>513 > 文中(先頭及び文末以外)の0が の説明と例からだと 「先頭以外」が先頭の0、1文字を指すのか 先頭から続く0の塊を指すのか不明でしょ > 3つ以上並ぶ部分 が強欲なのか?欲張りでいいのか?が不明 >>511 さんの質問だね http://mevius.5ch.net/test/read.cgi/tech/1635936601/519
520: デフォルトの名無しさん [sage] 2022/09/13(火) 23:09:06.59 ID:G28B9gdh >>519 訂正、>>510さんの質問 http://mevius.5ch.net/test/read.cgi/tech/1635936601/520
521: デフォルトの名無しさん [sage] 2022/09/13(火) 23:10:13.89 ID:aae9uQ50 みなさんありがとうございます! できそうな正規表現がありうれしいです。 すみませんが今手元に環境がないため明日動作させて確認します。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/521
522: デフォルトの名無しさん [sage] 2022/09/13(火) 23:20:09.73 ID:aae9uQ50 そして自分でも要件を言葉にできておらず申し訳ありません みなさんに質問いただいて初めて気付きましたが、 先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。 00001200034000 ↓ 000012-34000 となります。 返信遅くなりすみません。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/522
523: デフォルトの名無しさん [sage] 2022/09/13(火) 23:44:59.39 ID:G28B9gdh (?<!^)(?>0{3,})(?!$) 未test 最初のマッチだけ置換は以下 https://social.technet.microsoft.com/Forums/ja-JP/ad0f7263-3fd1-4545-b554-e796d27ef948/263682102112398125101248312481?forum=powershellja http://mevius.5ch.net/test/read.cgi/tech/1635936601/523
524: デフォルトの名無しさん [sage] 2022/09/14(水) 00:51:16.34 ID:4SNfctPQ >>518 あかんすね… ^(0*)((0{0,2}[1-9])+)0{3,}([1-9]\d*)$ --> $1$2-$4 これはどーでしょう? http://mevius.5ch.net/test/read.cgi/tech/1635936601/524
525: デフォルトの名無しさん [sage] 2022/09/14(水) 05:23:58.73 ID:E5sTi1VY ([1-9])0000*([1-9][0-9]*) $1-$2 http://mevius.5ch.net/test/read.cgi/tech/1635936601/525
526: デフォルトの名無しさん [sage] 2022/09/14(水) 09:12:22.80 ID:Kn3Wl+2J (?<=[1-9])(?>000+)(?!$)(.+)$ -$1 http://mevius.5ch.net/test/read.cgi/tech/1635936601/526
527: デフォルトの名無しさん [sage] 2022/09/14(水) 09:38:59.41 ID:s0UMl1ds (^[^0].*?)0{3,}([^0].*?$) $1-$2 http://mevius.5ch.net/test/read.cgi/tech/1635936601/527
528: デフォルトの名無しさん [sage] 2022/09/14(水) 10:42:18.62 ID:6Qq1IObP ○ >>524,525,526 ✕ >>523,527 http://mevius.5ch.net/test/read.cgi/tech/1635936601/528
529: デフォルトの名無しさん [sage] 2022/09/14(水) 19:22:12.74 ID:+0SwTq6N 508です。 沢山の案ありがとうございました、本当に助かりました。 一通り試して正しく動くものは沢山あったのですが、 以下の方式で解決させていただきました。 $reg=[regex]'([1-9])0000*([1-9][0-9]*)' $reg.Replace($str,'$1-$2',1) また、上記の案以外もこんな解決方法があるのかととても勉強になりました。 そして自分が要件をまとめられてなかったことにも反省いたしました。 今後はこちらで回答する側になれるよう、再度勉強いたします。 重ね重ね本当にありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/529
530: デフォルトの名無しさん [sage] 2022/09/14(水) 19:57:00.91 ID:b2aEm1i9 回答にある正規表現は置換回数を指定できない置換方法でも大丈夫 置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい http://mevius.5ch.net/test/read.cgi/tech/1635936601/530
531: デフォルトの名無しさん [sage] 2022/09/14(水) 22:22:31.78 ID:+0SwTq6N >530 確かに、教えていただいたこともりもりにしてしまいましたが わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。 ご指摘ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/531
532: デフォルトの名無しさん [] 2022/09/18(日) 12:56:41.18 ID: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" http://mevius.5ch.net/test/read.cgi/tech/1635936601/532
533: デフォルトの名無しさん [sage] 2022/09/18(日) 16:16:05.56 ID:wjpqonb4 >>532 https://regex101.com/r/zxuEpo/1 http://mevius.5ch.net/test/read.cgi/tech/1635936601/533
534: デフォルトの名無しさん [] 2022/09/18(日) 19:20:15.15 ID:/uA/jgNo >>533 ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね ".*"\s だと構文エラー吐きました 置換関数内(””の中)で”がうまく扱えないので頑張ってみます。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/534
535: デフォルトの名無しさん [sage] 2022/09/18(日) 21:26:30.42 ID:CbZe8FP4 "を \" や \x22 に置き換えて試してみてわ http://mevius.5ch.net/test/read.cgi/tech/1635936601/535
536: デフォルトの名無しさん [] 2022/09/19(月) 16:41:30.36 ID:4iw9Mtek >>535 ありがとうございます、いけました (ついでに””も削除) \x22.*\x22\s|\x22 http://mevius.5ch.net/test/read.cgi/tech/1635936601/536
537: デフォルトの名無しさん [sage] 2022/09/20(火) 02:58:09.09 ID:94I1wBUa 二重引用符のエスケープは重ねて""だな "".*""\s http://mevius.5ch.net/test/read.cgi/tech/1635936601/537
538: デフォルトの名無しさん [sage] 2022/10/29(土) 13:09:46.30 ID: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ライブラリが有れば教えて欲しいです http://mevius.5ch.net/test/read.cgi/tech/1635936601/538
539: デフォルトの名無しさん [sage] 2022/10/29(土) 19:31:13.26 ID:9Ey1MUJ8 >>538 \0@って何? \c@でNULL文字検索の意味ではないの? http://mevius.5ch.net/test/read.cgi/tech/1635936601/539
540: デフォルトの名無しさん [sage] 2022/10/29(土) 19:42:35.80 ID:ec13kmtS >>539 文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります http://mevius.5ch.net/test/read.cgi/tech/1635936601/540
541: デフォルトの名無しさん [sage] 2022/10/30(日) 10:24:48.15 ID:dZd+t5oq スプレッドシートで20221030と入力されている数字を日付の表記?2022/10/30なのか10/30/2022なのかわからないけどDATEDIF関数に使える形に置換する正規表現ってどう書きますでしょうか http://mevius.5ch.net/test/read.cgi/tech/1635936601/541
542: デフォルトの名無しさん [sage] 2022/10/30(日) 11:55:42.97 ID: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") http://mevius.5ch.net/test/read.cgi/tech/1635936601/542
543: デフォルトの名無しさん [sage] 2022/10/30(日) 12:28:15.07 ID:S1PTRz+V >>541 =DATEVALUE(REGEXREPLACE(A1, "^(....)(..)(..)$", "$1/$2/$3")) >>542 スレチ http://mevius.5ch.net/test/read.cgi/tech/1635936601/543
544: デフォルトの名無しさん [] 2022/11/02(水) 14:16:53.69 ID:gx4Z74sz すいません。 0と正の整数のみにマッチする正規表現はどう書きますか ---- OK 0 1 22 303 999999 ---- NG -3 z55 0.33 http://mevius.5ch.net/test/read.cgi/tech/1635936601/544
545: デフォルトの名無しさん [sage] 2022/11/02(水) 14:20:50.51 ID:4jxQNd6r ^\d+$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/545
546: デフォルトの名無しさん [] 2022/11/02(水) 14:26:53.26 ID:gx4Z74sz ありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1635936601/546
547: デフォルトの名無しさん [sage] 2022/11/02(水) 14:39:57.52 ID:Hz9+pCnD 00 00000000 012 003102 とかはええんかC言語だと8進数なんだけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/547
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 455 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s