:
(「コロン」)は、正規表現 に特別な意味を持っているしかし、私はあるとしてそれを使用する必要があり、[A-Za-z0-9.,-:]*
ように私はそれを脱出しようとしたが、これは動作しません[A-Za-z0-9.,-\:]*
正規表現に ":"( "コロン")を入力するには?
答えて
ほとんどの正規表現の実装(Javaを含む)では、:
には特別な意味はなく、文字クラスの内側と外側の両方に特別な意味はありません。
あなたの問題は、実際にあなたのクラスの範囲演算子として-
行為最も可能性が高いです:,-:
は','
と':'
間のすべてのASCII文字に一致し
[A-Za-z0-9.,-:]*
。ただし、それでも文字通り':'
と一致します。
代わりにこれを試してみてください:
[A-Za-z0-9.,:-]*
開始またはクラスの終わりに-
を配置することにより、それは文字通り"-"
と一致します。 Keoki Zeeのコメントで述べたように、クラス内で-
から脱出することもできますが、ほとんどの人は最後に追加するだけです。
デモ:
public class Test {
public static void main(String[] args) {
System.out.println("8:".matches("[,-:]+")); // true: '8' is in the range ','..':'
System.out.println("8:".matches("[,:-]+")); // false: '8' does not match ',' or ':' or '-'
System.out.println(",,-,:,:".matches("[,:-]+")); // true: all chars match ',' or ':' or '-'
}
}
ハイフンをバックスラッシュ '[a \ -z]'でエスケープすることもできます。 –
@Keoki:真実ですが、できるだけエスケープしないようにするのはより明確です(Javaの文字列リテラル内で二重にエスケープします)。それでも、それをエスケープすることはもちろんです。 –
最後にハイフンを置くことは、おそらく以前のプログラマーが行ったことであり、これがこのエラーにつながりました。私は*常に*エスケープする:サイクルを終わらせる ':)' – Kobi
コロンがありません。文字クラス内で特別な意味を持ち、エスケープする必要はありません。 the PHP regex docsによると、文字クラスにエスケープする必要がある唯一の文字は次のとおりです。
(開始時)
^
、-
、\
以外のすべての英数字以外の文字と 終了]
です 文字クラスでは特別ではありませんが、エスケープされている場合は、 になることはありません。
Java正規表現の詳細については、the docsを参照してください。
私はなぜこれがdownvoteを持っているのか分からない、誰かが私にこの答えで間違っているかもしれないことを説明することができますか? –
私は投票しませんでしたが、Java正規表現の質問にPHP regexのドキュメントをリンクしているためでしょうか? – hcpl
\:
の代わりに\\:
を使用してください。\
は、Java文字列で特別な意味を持ちます。
バックスラッシュはJava文字列のエスケープ文字ですが、ここでバックスラッシュをエスケープしても問題は解決しません。なぜなら ':'は正規表現の特別な文字ではないからです。 –
は注意してください、-
は正規表現で特別な意味を持っています。 []
では、最後にが置かれていれば、問題なくを置くことができます。あなたのケースでは、,-:
はから,
から:
までとなります。
- 1. Javascript正規入力の正規表現
- 2. 正規表現は、最初のコロン
- 3. 正規表現の入力
- 4. 正規表現は許容入力
- 5. lex入力ファイルで正規表現をエスケープするには?
- 6. コロン ":"の後の文字列に一致する正規表現
- 7. 正規表現の後ろにコロンが続くすべての単語を引用する正規表現
- 8. AngularJsテキスト入力フィールド正規表現
- 9. HIVE SerDeproperties入力正規表現
- 10. 正規表現バリデータの制限入力
- 11. 入力付き正規表現
- 12. 正規表現パターン入力の説明
- 13. 正規表現はコロンとセミコロンの間のコロンを置き換えます
- 14. 入力フィールドにスペースを入れない正規表現
- 15. 正規表現のPythonはコロンとアンダースコアを削除します
- 16. 正規表現の正規表現の正規表現
- 17. テキスト入力で一致する正規表現をハイライト表示
- 18. 正規表現はコロンまで無視されます
- 19. JavaScriptによる正規表現を使用したクレジットカード入力の入力
- 20. C#正規表現の正規表現
- 21. 正規表現の正規表現と ' -
- 22. 。NET正規表現(正規表現)
- 23. 正規表現による入力検証の問題
- 24. JavaScriptの正規表現をPHPの正規表現にする
- 25. Perl正規表現をSQL正規表現に変換する
- 26. セッド/ awkは/正規表現3つのコロン
- 27. 正規表現 - 正規表現
- 28. 正規表現用の正規表現
- 29. 正規表現は、
- 30. パイソン柄正規表現
エスケープのために2つのバックスラッシュが必要なのでしょうか? – Mehrdad
あなたは何を試そうとしていますか? –