2016-09-08 2 views
0

私の意図は、このような何かを行うことです。regexの範囲内でサブパターンを作成できますか?

[a-zA-Z\d(%8e)] 

はそれらの文字、数字、および%8eのシーケンスを許可しますが、ない%それ自体で。

私が使用している言語が%8eと、%2bと、(など)のようなシーケンスのための理由は、URLの文字エンコーディングを扱うとApacheが理解できる何かを吐き出すためにそれらを処理しているルビー1.8.7

ですリダイレクトとしてまたは.htaccessファイルに

を書き換える編集: %8eは、文字列の終わりに取り込まれますが、初めに、そしてそれがどのような私ではありませんされていない場合、私は例えば(いずれかの任意の位置依存関係を望んでいません私は探しています)

+1

'([-ZA-Z0-9] |%8eと)*'? –

+0

言語は何ですか?また、あなたが思っていることのいくつかの文字列の例を与えることができますか? %はスペースの間ですか? –

+0

'[]'は範囲ではなく、*文字*クラスです。クラス内で定義された1文字に一致します。したがって、文字クラスの中で* sequences *を使う方法はありません。 POSIXでは、 '[a-z]'は文字クラスではなくブラケット式*ですが、それでも*文字列*とは一致しません。 –

答えて

2

([a-zA-Z0-9]|%8e)*

は、あなたが探しているものでなければなりません。

\dは、iircが正規表現エンジンとしてサポートしていないので、文字クラス[]であってはいけません。

テスト結果:

https://regex101.com/r/sB7eT4/1

+0

おっと、私はあなたの質問を「文字列、数字、%8e」と読みました。 1文字または1桁の数字、または '%8e'にマッチしなければならない場合は、最後に' * 'を削除してください –

0

これはwhaですtはあなたが意味する、私は思う:

([a-zA-Z\d]|%8e) 
関連する問題