[過去ログ] Regular Expression(正規表現) Part15 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
503(1): デフォルトの名無しさん [] 2021/02/06(土)14:47 ID:s4jA/y9i(1/2)
お願いします
●Regular Expressionの使用環境
VBScript
●検索か置換か?
置換
●説明
[hoge]をブラケットごと消したい
[[hoge]]の場合は残したい
●対象データ
abc[hoge]def
ghi[[hoge]]jkl
●希望する結果
abcdef
ghi[[hoge]]jkl
^^^^^^^
否定戻り読み否定先読みで試してみたのですが、ブラケット2回の場合にマッチせずブラケット1回の場合にのみマッチさせる方法が分かりませんでした
よろしくお願いします
505: デフォルトの名無しさん [sage] 2021/02/06(土)16:56 ID:EC31O1b+(1/2)
>>503
VBSには否定戻り読みは無いので、工夫するしかない
すぐには思いつかないけどもっといい方法もあるかもしれないのでググってみては?
愚直には、一つの方法として以下の場合に分ける
1) [hoge]で始まる場合
2) 文字列があって [ 以外で終わって [hoge] がある場合
3) 文字列があって [ で終わってる場合、[hoge] があって ] が続かないこと
pattern : "^(?:\[hoge]|(.*?\[)\[hoge\](?!\])|(.*?[^\[])\[hoge\])(.*)$"
replace : "$1$2$3"
abcdef → abcdef
[hoge]def → def
[[abc]]def → [[hoge]]def
abc[hoge]def → abcdef
abc[[hoge]]def → abc[[hoge]]def
abc[[hoge]def → abc[def
abc[hoge]]def → abc]def
下2つの場合が無ければもう少し簡易にできる
では[hoge]が2つ以上ある場合はどうするか?
すぐ思いつく方法としては、変換をループさせて、文字列に変化がなければ終わりとか
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s