2016-12-27 16 views
1

私はこのような正規表現のコードを持っています。正規表現とバックスラッシュ

public class Main { 

public static void main(String[] args) { 
System.out.println(validateAddress("Test C\O good:product")); 
} 

public static boolean validateAddress(String address) { 
return address.matches("^[a-zA-Z0-9~`[email protected]#$%^&*()_+={|}:;'<,>? -/\"\t\n\\[\\] .]*$"); 
} 
} 

私はこれを実行すると、私の表現が\文字を受け入れることができないので、私はfalseになります。私は\を含めるように試みたが失敗した。

正規表現に\文字を組み込んで検証する方法を教えてください。

おかげで、 ラケッシュ

+2

まず、あなたは' "製品のテストC \\良いO" に対して試してみたいです。第二に、バックスラッシュにマッチさせるには、パターンに '' \\\\ "'を使います。最後に ' - 'をエスケープしたり、文字クラスの最後に置いたりします。 –

答えて

1

まず、あなたが"\\"(2つのバックスラッシュ)を使用する必要があり、文字列リテラルにバックスラッシュを定義するよう"Test C\\O good:product"に対して試してみたいです。第2に、バックスラッシュに一致させるには、パターンに"\\\\"を使用します。最後に、-からエスケープしたり、文字クラスの最後に置きます。

Java demoを参照してください: `:

public static void main (String[] args) throws java.lang.Exception 
{ 
    System.out.println(validateAddress("Test C\\O good:product")); 
} 
public static boolean validateAddress(String address) { 
    return address.matches("^[a-zA-Z0-9~`[email protected]#$%^&*()_+={|}:;'<,>?\\\\ /\"\t\n\\[\\] .-]*$"); 
} 
+0

ありがとうございます。それが私を助けました。 –

関連する問題