view.php
asvalueでGET変数と一致する文字列の正規表現を取得しようとしfile
ています[a-zA-Z0-9_]*
。参考までに、このURLを次のように書き直す必要があります/file/value
私がしたがうまくいかなかったこと:^view.php\?.*?(&|\?)file=([a-zA-Z0-9_]*).*$
何が機能しますか?
view.php
asvalueでGET変数と一致する文字列の正規表現を取得しようとしfile
ています[a-zA-Z0-9_]*
。参考までに、このURLを次のように書き直す必要があります/file/value
私がしたがうまくいかなかったこと:^view.php\?.*?(&|\?)file=([a-zA-Z0-9_]*).*$
何が機能しますか?
@Lindrianが尋ねたように、これはURLで始まる文字列に対して実行されますview.py
か、それともURL全体に対して実行されますか?前者の場合、この単純な正規表現は私の意見ではうまく機能するはずです(ここではPythonを使用):
In [1]: import re
In [2]: s = 'view.php?foo=bar&file=blablah123&anotherfoo=anotherbar'
In [3]: re.sub(r'view\.php\?.*\bfile=(\w+).*', '/file/\g<1>', s)
Out[3]: '/file/blablah123'
view.php\?
ここであなたは受け入れviewaphp?
ます。それは大丈夫ですか?あなたはおそらく意味しview\.php
ます。また、最後に疑問符を付けますが、次のようになります。(&|\?)
ここでも、アンパサンドまたは疑問符のいずれかを適用します。view.php??file=...
したがって、またはのようなものが必要ですview.php?.*&file=...
必要なものはおそらく次のようなものです(テストされていませんが、空のファイル名を許可しないように+に注意してください)。
^view\.php\?(?:file=)|(?:.*&file=)([a-zA-Z0-9_]+)(?:&|$)
先頭^
とは、文字列全体がview.phpで始まることを意味しますが、これはおそらく正しくありません。file
また、正規表現では、それが最後のGETなどであると想定しています。
この正規表現はfile
、任意の文字列のgetvalueと一致する必要があります
view\.php\?.*?\bfile=(\w*)\b