Это код Java, необходимый для эмуляции значения \w
:
public final static String
identifier_chars = "\\pL" /* all Letters */
+ "\\pM" /* all Marks */
+ "\\p{Nd}" /* Decimal Number */
+ "\\p{Nl}" /* Letter Number */
+ "\\p{Pc}" /* Connector Punctuation */
+ "[" /* or else chars which are both */
+ "\\p{InEnclosedAlphanumerics}"
+ "&&" /* and also */
+ "\\p{So}" /* Other Symbol */
+ "]";
public final static String
identifier_charclass = "[" + identifier_chars + "]"; /* \w */
public final static String
not_identifier_charclass = "[^" + identifier_chars + "]"; /* \W */
Теперь используйте identifier_charclass
в шаблоне, где вы хотите один \w
символ, и not_identifier_charclass
, где вы хотите один \W
символ. Это не совсем соответствует стандарту, но это намного лучше, чем неправильные определения Java для них.