view.phpasvalueでGET変数と一致する文字列の正規表現を取得しようとしfileています[a-zA-Z0-9_]*。参考までに、このURLを次のように書き直す必要があります/file/value
私がしたがうまくいかなかったこと:^view.php\?.*?(&|\?)file=([a-zA-Z0-9_]*).*$
何が機能しますか?
view.phpasvalueで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