1

次の文字列で検索と置換 (複数の文字) を実行しようとしています。

VAR=%2FlkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA%2B7G3e8%3D&

これらの文字の 1 つ以上: %3D、%2F、%2B、%23 は、どこでも (文字列の最初、中間、または最後) 見つけることができ、理想的には、それらすべてを一度に検索したいと思います ( 1 つの正規表現を使用して)、それらをそれぞれ = または / または + または # に置き換えてから、最終的な文字列を返します。

例 1:

VAR=%2FlkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA%2B7G3e8%3D&

戻るべき

VAR=/lkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA+7G3e8=&

例 2:

VAR=s2P0n6I%2Flonpj6uCKvYn8PCjp%2F4PUE2TPsltCdmA%3DRQPY%3D&

戻るべき

VAR=s2P0n6I/lonpj6uCKvYn8PCjp/4PUE2TPsltCdmA=RQPY=&
4

5 に答える 5

2

これには正規表現が必要だとは思いませんが、Python を使用するとかなり簡単に実行できます。

x = 'VAR=%2FlkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA%2B7G3e8%3D&'

import re

MAPPING = { 
    '%3D': '=',
    '%2F': '/',
    '%2B': '+',
    '%23': '#',
}

def replace(match):
    return MAPPING[match.group(0)]

print x
print re.sub('%[A-Z0-9]{2}', replace, x)

出力:

VAR=%2FlkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA%2B7G3e8%3D&
VAR=/lkdMu9zkpE8w7UKDOtkkHhJlYZ6CaEaxqmsA+7G3e8=&
于 2013-09-15T20:45:27.020 に答える