Double escaping in a Java String when defining regular expressions

In Java, all the regular expressions are entered as a String type, where acts as an escape character and is used to interpret certain special characters such as , , and so on. So, it is necessary to double-escape all the predefined classes, such as w, d, s, using two backslashes and while escaping metacharacters, such as [, (, +, and so on, in string literals.

If we have to use the preceding regex for a dollar amount in Java, then it would be as follows:

final String re = "\$\d+\.\d+";

The preceding example that matches a signed decimal number has to be written as follows in Java:

final String re = "^[+-]?\d*\.?\d+$";

For the same reasons, if we have to match a single backslash character, then it would be as follows:

\\

How can we write a regex string that matches an input that allows any alphanumeric character, hyphen, dot, or backslash, such as xyzTR-4.50? Here is how:

final String re = "^[a-zA-Z0-9.-\\]+$";

How can we write a regular expression in Java that will accept any Latin character, Unicode whitespaces, or Unicode digits? Refer to the following regex:

final String re = "^[\p{IsLatin}\p{Zs}\p{N}]+$";

How to write a regular expression in Java that will accept any Unicde character, Unicode whitespaces, Unicode digits, or Unicode punctuation characters? Check out the following regex:

final String re = "^[\p{L}\p{Z}\p{N}\p{P}]+$";

The following Java regex matches the string, "abc:][}[":

final String re = "abc:\]\[\}\{";
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.221.66.185