[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
今回のはややこしくはない
むしろ簡単
1-
あと 149 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s