私は見て、否定的な見通しについてのものを見つけましたが、私はこれについて何をすべきかまだ分かりません。私はRewriteRule ^([a-zA-Z0-9]+)/?$
を持っていますが、私は特に "help"( "help"ではなく "hellp"など)という単語を将来的に除外したいと考えています。申し訳ありませんが、これには似たような疑問がたくさんあることはわかっていますが、これを具体的にどのように適用するかを理解できていません。すべての文字と数字の組み合わせは一致しますが、特定の単語は一致しますか?
答えて
また、「ヘルプ」以外のすべての英数字の文字列に一致する正規表現を書くこともできます。正規表現([a-zA-Z0-9]+)/?&~help
は、&
と~
演算子を使用しない正規表現に書き換えることができます(広くは使用できません)。
正規表現は犬の朝食のように見えるので、実際にはこれをしたくないです。しかしここに方法があります。
まず、短いすべての英数字コードが一致します。 「HELは」許容できる問題ではありませんし、どちらも他の三文字/数字の配列である。
[a-zA-Z0-9]{1,3}
我々はまた、5つの以上の文字の配列を認識することができます。
[a-zA-Z0-9]{5,}
今すぐ助けていない4文字の配列が一致し、トリッキーな部分が来る:彼らはこれを含めることで、「ヘルプ」のいずれか、ではありません。これは、h
で始まらない4つのchar識別子、または2番目の文字としてe
を持たない4つのcharを意味します。その他:これらのいずれにも一致しない4つの文字パターンは、「ヘルプ」という単語のみです。 hのため最初のもの、eのための2番目のものと一致しません。
したがって、アンカーリング。深呼吸をして:
^([a-zA-Z0-9]{1,3}|[a-zA-Z0-9]{5,}|[a-gi-zA-Z0-9][a-zA-Z0-9]{3}|[a-zA-Z0-9][a-df-zA-Z0-9][a-zA-Z0-9]{2}|[a-zA-Z0-9]{2}[a-km-zA-Z0-9][a-zA-Z0-9]|[a-zA-Z0-9]{3}[a-oq-zA-Z0-9])$
これをEFNetのIRCネットワーク上の#unix
のための新しいチャンネルキーでなければなりません。 :)
私はこれをテストするつもりですか?あなたはナッツですか...
もちろん、私はしましたが、sed。若干。ほとんどのメタ文字をエスケープする必要があります。
$ sed -n -e '/^\([a-zA-Z0-9]\{1,3\}\|[a-zA-Z0-9]\{5,\}\|[a-gi-zA-Z0-9][a-zA-Z0-9]\{3\}\|[a-zA-Z0-9][a-df-zA-Z0-9][a-zA-Z0-9]\{2\}\|[a-zA-Z0-9]\{2\}[a-km-zA-Z0-9][a-zA-Z0-9]\|[a-zA-Z0-9]\{3\}[a-oq-zA-Z0-9]\)$/p'
a <- typed
a
aa <- typed
aa
aaa <-
aaa
aaaa <-
aaaa
aaaaa <-
aaaaa
help <- aha, no response from sed
aelp <-
aelp
helper <-
helper
P.S.私は〜、&、 - をサポートする正規表現の実装を書いたことを知っています。すぐにApacheに来ることはありません。 :P – Kaz
- 1. 文字と数字の組み合わせが一致正規表現
- 2. %と%の間の10文字の英数字の組み合わせに一致
- 3. 正規表現の単語の最初の文字は一致しますが、 "and"は一致しません。
- 4. 文字列と一致しますが、特定のパターンと一致しない場合はPython
- 5. 特定の文字と長さが一致しません - RegEx
- 6. 単一の文字が一致する
- 7. 2進数の組み合わせの検索(一致する1の数字)
- 8. Vimの構文は単語のみに一致します
- 9. 単語と特殊文字を一致させる
- 10. 数字またはスペース+数字の後に一致しない単語の一致
- 11. MySQLはすべての文字列に一致します
- 12. regex pythonで文字列内の特定の単語または単語のセットを一致させる
- 13. 行が特定の単語で始まる場合にのみ一致する単語を削除します。
- 14. は、Pythonの単語/文字列と完全に一致します
- 15. 同一の文字列は一致しませんか?
- 16. Javaですべての文字/単語の組み合わせを試す
- 17. PHP preg_replaceは、特殊文字の後の数字に一致します
- 18. T-SQLは特殊文字と一致します。 Preは一致する必要がありますPrè
- 19. 大文字と小文字の両方で表示される一致文字列(または小文字と大文字の組み合わせ)
- 20. 文字列が一致しません
- 21. 特定の文字の前のすべての単語を一致させる正規表現
- 22. C#Regex単語全体に一致する、特殊文字
- 23. PHP文字列の単語の配列と一致する
- 24. Javaは文字列内の単語全体を一致させます
- 25. Elasticsearchの一致フレーズプレフィックスがすべての単語に一致しない
- 26. 正規表現:いくつかの文字と一致するか、または一致しない文字と一致します
- 27. 単語インデックスと単語数のmysqlの長さが一致しませんか?
- 28. 辞書の単語を組み合わせて1つの単語に一致させる
- 29. Javascript配列内の複数の単語に一致する場合は文字列を選択します
- 30. Regexは特定の単語の部分文字列であれば一致を無視します
実際に解決しようとしている問題は何ですか? "ヘルプ"を受け取り、あなたが望むものを何でも実行する、より高い優先順位(すなわち、最初にチェックされる)を有するリライトルールを単に有することは、ここでの最良の解決策である可能性が非常に高い。 –
@AlexanderCorwin私は「ヘルプルール」を持っていますが、そのルールを取るリンクをクリックすると、実際には最後のRewriteRuleが取られ、他のものもスキップされます。 RewriteRule ^/help /?$ help.php'は 'RewriteRule ^([a-zA-Z0-9] +)/ a /([^ /] +)/([^])で処理されます。 /] +)/?$ page.php?var1 = $ 1&var2 = $ 2&var3 = $ 3' EDIT-気にしないでください。 – qitch