Unicode Character Class [\p{L}&&[^\p{Lu}]]



The character class [\p{L}&&[^\p{Lu}]] matches any character except uppercase letters.


The following example shows the usage of Unicode character class matching.

package com.tutorialspoint;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class UnicodeCharacterClassDemo {
   private static final String REGEX = "[\\p{L}&&[^\\p{Lu}]]";
   private static final String INPUT = "!BSab\u03B1";

   public static void main(String[] args) {
      // create a pattern
      Pattern  pattern = Pattern.compile(REGEX);
      // get a matcher object
      Matcher matcher = pattern.matcher(INPUT); 

      while(matcher.find()) {
         //Prints the start index of the match.
         System.out.println("Match String start(): "+matcher.start());

Let us compile and run the above program, this will produce the following result −

Match String start(): 3
Match String start(): 4
Match String start(): 5