[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
822: 2023/08/12(土)19:14 ID:g9Iw6FTW(2/2) AAS
>>820
>>821
うぉぉ、ありがとうございました!
823: 2023/08/13(日)14:38 ID:vv6Q6LsS(1) AAS
突然大きな声で叫ぶな
824(1): 2023/08/20(日)13:26 ID:tG3c9Vi+(1/4) AAS
perl 正規表現で一発変換できませんか
"aaa \"bbb\" \"ccc\" ddd" # これを以下にしたい
aaa "bbb" "ccc" ddd
825(1): 2023/08/20(日)13:58 ID:vZ93TkLb(1/4) AAS
正規表現で
my $s = '"aaa \"bbb\" \"ccc\" ddd"';
$s =~ s/(.*)/eval $s/e;
正規表現を使わずに
my $x = eval '"aaa \"bbb\" \"ccc\" ddd"';
826: 2023/08/20(日)14:00 ID:vZ93TkLb(2/4) AAS
>>825
$s =~ s/(.*)/eval $s/e;
↓
$s =~ s/(.*)/eval $1/e;
827: 0824 2023/08/20(日)20:08 ID:tG3c9Vi+(2/4) AAS
文字列をevalで再度評価させる
ありがとうございます、勉強になります
ただ文字列にシングルクォートはありません
文字列に2つのパターンがあります
hogehoge "aaa bbb ccc ddd"
hogehoge "aaa \"bbb \"ccc ddd"
s/hogehoge\s+"(.+)".*\n/$1/; # で弾いて
tr/\\//d; # 2回処理しています
828(1): 2023/08/20(日)20:26 ID:vZ93TkLb(3/4) AAS
単純に
s/\\//g
でええんとちゃうん
829: 0824 2023/08/20(日)20:59 ID:tG3c9Vi+(3/4) AAS
>>828
2回処理するのでindexで調べてtr使った方が早いでしょ
hogehoge "aaa bbb ccc ddd"
hogehoge "eee \"fff\" \"ggg\" hhh"
目的文字列
aaa bbb ccc ddd
eee "fff" "ggg" hhh
830(1): 2023/08/20(日)21:32 ID:vZ93TkLb(4/4) AAS
一発変換したいんじゃないの?
s/hogehoge\s+(.+)/eval $1/e
831(2): 0824 2023/08/20(日)21:58 ID:tG3c9Vi+(4/4) AAS
>>830
ありがとうございます
s/hogehoge\s+"(.+)".*\n/$1/;
これで弾いてるの"以後にコメントがあるかもしれないからです
832: 2023/08/21(月)20:43 ID:Lyi1TDoI(1) AAS
eval思い付く人すごい、甲子園優勝
833(1): 2023/08/21(月)23:39 ID:Frb3PbHb(1/2) AAS
>>824
これはUnix名前空間の全引数を" "で括ったものをほどくだけに見えるので、例えばLinux上では
文字列変換ではなく、printfコマンドを通せば一発だが。
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd"
# aaa "bbb" "ccc" ddd
834: 2023/08/21(月)23:52 ID:Frb3PbHb(2/2) AAS
見落としてたので補足しておくと、>>831のコメントの件もUnixの書式に則ったものなら大丈夫。
$ printf '%s' "aaa \"bbb\" \"ccc\" ddd" # ←のようにコメントがあっても、↓になる
# aaa "bbb" "ccc" ddd
835: 2023/08/22(火)01:30 ID:RW2iO7Jr(1) AAS
>>perl 正規表現で一発変換できませんか
まあ参考にはなるけど質問の条件無視してドヤ顔で語られてもねえ‥
836: 2023/08/22(火)02:16 ID:NJ9SPgik(1/2) AAS
>>833
単にシェルが引数処理してるだけじゃん
これで十分だろ
echo "aaa \"bbb\" \"ccc\" ddd" #
837(1): 2023/08/22(火)12:38 ID:NJ9SPgik(2/2) AAS
>>831
(perlの)コメントがあっても動作するよ
838: 0824 2023/08/23(水)09:58 ID:yShv/GWA(1) AAS
>>837
ありがとうございます、勘違いしてました
eval評価だからコメントあっても行けますね
839(1): 2023/09/02(土)20:40 ID:PozNjemk(1) AAS
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
IPアドレス部分だけ抽出したいです
各セグメントが1-255の範囲内かどうかのチェックは無くてもOKです
※対象データの内xは文字としてのアルファベットのxです
\r\nは改行コードです
よろしくお願いします
省4
840: 2023/09/02(土)22:43 ID:JbZUXP6Y(1) AAS
(%d+%.%d+%.%d+%.%d+)
841: 839 2023/09/03(日)01:48 ID:BSGxD5eG(1/2) AAS
ありがとうございました
842: 2023/09/03(日)01:50 ID:BSGxD5eG(2/2) AAS
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
コロンとスペースの右側の数字だけ抽出したいです
よろしくお願いします
●対象データ
abe-gkm: 12
●希望する結果
省1
843(1): 2023/09/03(日)06:04 ID:ldBVlws1(1) AAS
自分で覚える気は一切ないんですね
844(1): 2023/09/03(日)14:44 ID:QHfhMJE9(1) AAS
LUA5.1リファレンスマニュアル 文字列操作
外部リンク[html]:milkpot.sakura.ne.jp
845(1): 2023/09/03(日)17:01 ID:7kfz6vsc(1/2) AAS
訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 12
省2
846(2): 2023/09/03(日)17:20 ID:ruPOb/mk(1/2) AAS
訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: ::12
省2
847(1): 845 ◆06.HT2D93O4J 2023/09/03(日)17:22 ID:7kfz6vsc(2/2) AAS
>>846は別の人なのでトリップを付けておきます
よろしくお願いします
848(1): 2023/09/03(日)17:42 ID:ruPOb/mk(2/2) AAS
訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 121212
省2
849(2): 2023/09/04(月)00:12 ID:SsZQexqW(1) AAS
>>843-844
>>846-848
夏休みキッズ達よ、答えられないor嫌なら見なければいい
>>845
[^: ]*$
850: 2023/09/04(月)13:01 ID:c5K3sEzk(1) AAS
Excelの文字を取り出すLEFT関数、RIGHT関数、MID関数
正規表現でも相当がんばれば再現できなくはないけれど、努力に見合った意味が見つからない
851(1): 2023/09/04(月)13:08 ID:nyO3ndTW(1) AAS
>[^: ]*$
こういうの後ろから見るよう最適化されるのかな
852: 2023/09/04(月)15:41 ID:zA8RUwS0(1) AAS
ややこしい検索は正規表現だけよりも
awkなどで簡単な正規表現とif文や関数を組み合わせる方が早い
853: 2023/09/04(月)18:55 ID:BoKCZaYW(1) AAS
今回のはややこしくはない
むしろ簡単
854(1): 2023/09/04(月)19:08 ID:8gjbapjk(1) AAS
>>849
アホらしすぎて・・・
855(1): 2023/09/04(月)20:45 ID:DgpCgO2R(1/2) AAS
>>854
相手の技量は千差万別
自分を基準に考えるからキッズなんだ
たとえそれがHello World!レベルであったとしても
テンプレ使ってちゃんと質問されているのだから
856(1): 2023/09/04(月)20:55 ID:Tkae+foX(1) AAS
>>855
気に入らないレスに絡んでるのは貴方も同じ
嫌なら見るな
857: 2023/09/04(月)20:58 ID:DgpCgO2R(2/2) AAS
>>856
気に入る気に入らないじゃなくて
スレを荒らさないで欲しいって事
858: 2023/09/04(月)21:05 ID:NKgrLrxG(1) AAS
訂正がありました
よろしくお願いします
●Regular Expressionの使用環境
Lua
●検索か置換か?
検索
●説明
最後に現れるコロンの右側だけ抽出したいです
●対象データ
ab:e-gkm: 33
省2
859: 845 ◆06.HT2D93O4J 2023/09/04(月)21:07 ID:3GWjSEvz(1) AAS
>>849
ありがとうございました
860: 2023/09/04(月)21:16 ID:NTqFdCv7(1) AAS
自演荒らしが捗るなw
861: 2023/09/04(月)22:23 ID:0+pR+e5l(1) AAS
コロンが無い場合はマッチでよかったのかな?
>>851
されない
right to leftにするオプションが必要
対象文字列が短ければ大差ない
862: 2023/09/06(水)02:59 ID:lSkku4oe(1) AAS
インフラ屋は性格良い
プログラマは性格悪い
863: 2023/09/06(水)07:21 ID:yobQfJn+(1) AAS
俺はインフラ屋
性格良いよ
864: 2023/09/06(水)09:14 ID:UTcPybKQ(1) AAS
プログラマは正確悪いというより
無駄な事をしたくないだけっていう人が多い
865: 2023/09/06(水)09:18 ID:BQBp+rCO(1) AAS
無駄な事をしたくないと思いつつ性格が悪いから文句だけは言う人が多い
866(1): 2023/09/06(水)09:44 ID:HD7oM5sP(1) AAS
態度と性格を区別できない人々
867: 2023/09/06(水)09:45 ID:Ygn1Ao5e(1) AAS
>>866
能書きだけはいっちょまえ
868: 2023/09/06(水)09:57 ID:tVigPql1(1) AAS
それがプログラマの性分
869: 2023/09/08(金)08:44 ID:07e9DMWQ(1) AAS
ぼくはインフラ屋だけど性格悪い(´・ω・`)すまんね
870(1): 2023/09/11(月)00:45 ID:cvO0nzmM(1/2) AAS
●Regular Expressionの使用環境
サクラエディタ
●検索か置換か?
検索
●説明
REM半角スペースを検索してREM部分のみに一致させたい
●対象データ
REM TEST
●希望する結果
REM
871: 870 2023/09/11(月)00:53 ID:cvO0nzmM(2/2) AAS
/REM(?= )/kで出来ました
872(1): 2023/09/13(水)16:39 ID:qhl2oEPa(1/3) AAS
●Regular Expressionの使用環境
javascript
●検索か置換か?
検索
●説明
( ) 括弧の中の文字列の特定の文字の時だけ一致させたいです
例でいえば括弧の中が「横浜」の時だけヒットさせたいです
●対象データ
東京都(ただし新宿区は除く)に住みたいけれど、神奈川県(だけど横浜は家賃が)でもいい
●希望する結果
省1
873: 2023/09/13(水)16:41 ID:qhl2oEPa(2/3) AAS
ごめんなさい872の追記です
括弧は半角全角どちらでも対応できるようにしていただけると助かります
874(1): 2023/09/13(水)18:37 ID:3qYEVVGq(1) AAS
>>872
[((]\K[^))]*横浜[^))]*+(?=[))])
875(1): 2023/09/13(水)20:55 ID:T8/GYmvT(1) AAS
対象データがそれだけきれいに整っているならこれでいいんじゃないかな
[^()()]*横浜[^()()]*(?=[))])
876: 2023/09/13(水)21:32 ID:qhl2oEPa(3/3) AAS
>>874-875
ありがとうございます。875さんの方でプログラムがパーフェクトに動くものが叶いました。
877: 2023/09/14(木)00:22 ID:L47o5ku7(1) AAS
鬼車は結局Unicode15対応版がリリースされなかったな
878: 2023/09/16(土)22:56 ID:dIGSEJlt(1) AAS
同じワードの繰り返し(回数指定)を除外する正規表現を教えてください
879: 2023/09/17(日)07:04 ID:jNYPDoV+(1/2) AAS
除外??
880: 2023/09/17(日)10:23 ID:ht+84nM7(1) AAS
こういうこと?
abcxyzacz → bxy
881: 2023/09/17(日)14:29 ID:yn1jo0MJ(1/3) AAS
"にゃんたま"が3回以上登場する文字列から全ての"にゃんたま"を取り除く
\A(?=(?:(?:(?!にゃんたま)[\s\S])*にゃんたま){3})((?:(?!にゃんたま)[\s\S])*)にゃんたま|\G((?:(?!にゃんたま)[\s\S])*)にゃんたま
882: 2023/09/17(日)14:33 ID:yn1jo0MJ(2/3) AAS
置換後の文字列: $1$2
883: 2023/09/17(日)15:23 ID:yn1jo0MJ(3/3) AAS
スマン、\Gの前に(?!\A)を置いてくれ
884: 2023/09/17(日)16:53 ID:oNTID2ix(1) AAS
3回連続して出現する単語を削除
//javascript
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎';
console.log(s.replace(/(?:(.+)\1{2})/g, ''));
#python
s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎'
print(re.sub(r'(?:(.+)\1{2})', '', s))
885: 2023/09/17(日)17:05 ID:Fm9hMrUa(1) AAS
\nを30回以上は非表示するにはどうしたらいいですか
886: 2023/09/17(日)17:18 ID:jNYPDoV+(2/2) AAS
非表示??
887: 2023/09/17(日)17:41 ID:PjfamyxI(1) AAS
\nがn回以上除外で
888: 2023/09/17(日)22:51 ID:jyrM2LRG(1) AAS
●Regular Expressionの使用環境
Perl
●検索か置換か?
検索
●説明
後ろから2つ目の/以降を取得したい
●対象データ
/a/bb/ccc/dddd/eeeee/cgi/sample.cgi
●希望する結果
/cgi/sample.cgi
省1
889: 2023/09/18(月)01:07 ID:e1xt8o+y(1) AAS
.*\K/.*/.*
890: 2023/09/23(土)15:35 ID:UU1JiicL(1) AAS
何回連続とか何番目とかってのは正規表現じゃなくて言語でなんとかした方がいいのでは
可読性的な観点からでも
891: 2023/09/25(月)14:32 ID:w/fMdm7Q(1) AAS
正規表現じゃなく言語表現をなんとかした方がいい
892: 2023/09/25(月)15:45 ID:b6Bm13IE(1/2) AAS
正規表現じゃなく性器表現とした方がいい
893: 2023/09/25(月)15:46 ID:b6Bm13IE(2/2) AAS
正規表現じゃなく性器表現とかなんとかにした方がいい
894(1): 2023/09/26(火)17:43 ID:WhLFttTP(1) AAS
添削って受け付けてたっけ?
自分が求める結果は得られてるけど、それでいいのかどうか
895: 2023/10/03(火)15:05 ID:pjWozC8L(1) AAS
>>894
You ここで見せちゃいなよ、meが見てあげるよ
896: 2023/10/15(日)05:59 ID:qeiyy+lM(1/3) AAS
oniguruma Release 6.9.9
Update Unicode version 15.1.0
NEW API: ONIG_OPTION_MATCH_WHOLE_STRING
Fixed: (?I) option was not enabled for character classes (Issue #264).
Changed specification to check for incorrect POSIX bracket (Issue #253).
Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268)
Fixed: ONIG_OPTION_FIND_LONGEST behavior
> ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求
マッチした開始の位置はstartでなくても良いらしい
oniguruma/test/test_options.c
省4
897: 2023/10/15(日)06:13 ID:qeiyy+lM(2/3) AAS
> Fixed: ONIG_OPTION_FIND_LONGEST behavior
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "ab", 0, 2); // OK ( "ab" にマッチ)
最左最長一致からガチ最長一致になってる
898: 2023/10/15(日)06:27 ID:qeiyy+lM(3/3) AAS
間違えた、こっちだった
oniguruma/test/test_options.c
x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "abc", 0, 3); // OK ( "abc" にマッチ)
// マルチバイト文字には非対応のまま
x2(ONIG_OPTION_FIND_LONGEST, "ab|あ", "abあ", 2, 5); // OK ( "あ" にマッチ)
UTF-32 にエンコードしてから使えばいいのかしら
899(1): 2023/10/20(金)08:36 ID:S3IcPVBq(1) AAS
Strawberry Perl
外部リンク[html]:strawberryperl.com
32bit版が出なくなった。64bitに乗り換えよう。(全銀)
900: 2023/10/20(金)16:11 ID:8kCGh912(1) AAS
>>899
ZIP edition が無い…
901: 2023/10/21(土)14:33 ID:43n7K7Fq(1) AAS
tar.gzで我慢しなさい
902: 2023/10/29(日)10:19 ID:zDgIETfO(1/4) AAS
アルファベットのみにマッチする文字クラスを[a-Z]と書けない
ASCIIコード表を決めた人達は今頃失敗したと思ってるんだろうか
903: 2023/10/29(日)12:34 ID:vOjtdftv(1) AAS
初心者向けクイズ
Q: /w にマッチするアルファベット以外の文字がひとつあります。その文字とは、一体何でしょうか?
904: 2023/10/29(日)12:42 ID:BaFdPLsN(1) AAS
アンダースコート
905: 2023/10/29(日)12:45 ID:zDgIETfO(2/4) AAS
アンダースロー
906: 2023/10/29(日)13:20 ID:y5KdwCim(1) AAS
アンダーニンジャ
907: 2023/10/29(日)15:41 ID:zDgIETfO(3/4) AAS
ニンジャリバンバン
908: 2023/10/29(日)19:20 ID:dO2GnsiA(1) AAS
正解はスラッシュでした
909: 2023/10/29(日)19:49 ID:zDgIETfO(4/4) AAS
(/w\)
910(1): 2023/10/30(月)20:06 ID:wzEyUd/K(1) AAS
ASCIIコード表について調べてみたら特定の1ビットを0にするか1にするかで
大文字小文字が変換出来るようにするための順番らしい
並びの便利さより処理効率が優先されてた、先人の知恵に敬礼
911: 2023/10/30(月)20:59 ID:dhg2pdyL(1) AAS
どうせ範囲チェックはしないといけないんだから
それだったら引き算や足し算で大文字小文字変換できちゃう
まあ昔はbit演算より算術演算にステップ数が掛かってたからその当時は良かったんだろうけど
912: 2023/10/31(火)18:36 ID:X00tNW2d(1) AAS
今時のマシンのことしか考えなくていいなら足し引きで良さそうだけど
遅いマシンのことまで考えるならビット演算一択になるんだろうな
アルファベットが32文字だったら隙間出来なかったのに
SHIFT_JISのダメ文字問題も最初からEUC-JPにしとけば苦労しなかったのにな
913: 2023/10/31(火)21:57 ID:27STA2Pg(1) AAS
正規表現は改行の扱いが難しいなあ
やらかすときはたいてい改行の処理でミスる
914: 2023/11/01(水)09:19 ID:DBguvWIQ(1/3) AAS
. が改行にマッチしないのを失念してってのは何度もやってる
915: 2023/11/01(水)11:38 ID:ikHnu6pN(1/3) AAS
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
省7
916(2): 2023/11/01(水)11:38 ID:ikHnu6pN(2/3) AAS
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
省7
917(1): 2023/11/01(水)12:08 ID:oh2mJ3WA(1) AAS
^(?:キ?ム?ラ?)(?<=\S)(?=\S)(?:タ?ク?ヤ?)$
918: 2023/11/01(水)14:40 ID:DBguvWIQ(2/3) AAS
同じ人かは分からないけど超優秀な回答者がここ1,2年前から来てくれてる
多くの閲覧者にとっても勉強になるからありたがいことです
919: 2023/11/01(水)16:00 ID:G1jsC9Xy(1) AAS
じつはその人AIだよ
920(1): 2023/11/01(水)17:01 ID:ikHnu6pN(3/3) AAS
>>917
ありがとうございます動きました
3語以上の場合はこれでできてますか?
^(?:キ?ム?)(?<=\S)(?=\S{2})((?:ラ?タ?)(?<=\S{2})(?=\S)(?:ク?ヤ?))$
921: 2023/11/01(水)17:03 ID:DBguvWIQ(3/3) AAS
AIと言われても違和感が無いから困る、人間だったほうがいい
サクラエディタを少し触ってみたが
\r を \c-
\n を \c*
に書き換えてもマッチした
このことは恐らくbregoing.dllの作者氏でも知らないのでは
上下前次1-新書関写板覧索設栞歴
あと 81 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.033s