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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
818: 2023/07/30(日)10:33 ID:3uyXLeeN(1) AAS
テキストエディタで置換を行うときに「正規表現」と「選択範囲」をオン

検索: ^
置換: #

選択範囲の全ての行をコメントアウト出来て便利
--------------------------------------------------------

検索: [  \t]+$
置換: (なし)

行末の余計なスペースを削除出来て便利
819
(1): 2023/08/12(土)18:48 ID:g9Iw6FTW(1/2) AAS
画像リンク[png]:hoge.com 画像リンク[png]:fuga.net 画像リンク[png]:moga.com
の用に1行に複数URLがスペース区切りで記載されているものを、それぞれ単独で抜き出したいです。

https?://(?:[!-~]+.)+[!-~]+
だと最長一致になってしまうようで、1行丸ごと対象になってしまます
最短一致出来ればいいと思うのですが、どう正規表現を弄ればいいか教えてください。
820
(1): 2023/08/12(土)18:56 ID:IKZkjZuG(1) AAS
http[^\s]+
821
(1): 2023/08/12(土)19:02 ID:BmgakVsI(1) AAS
>>819
.をエスケープ
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は別の人なのでトリップを付けておきます
よろしくお願いします
1-
あと 155 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.363s*