Это самое жесткое решение, если вы хотите, чтобы соответствовать действительный идентификатор Java:
inputString.matches("\\Qcom.sap.fw.tr.SYSTEM.\\E\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*");
Это использует String.matches(String regex)
вместо того, чтобы идти через Pattern
класса.
ломаются картины:
\Qcom.sap.fw.tr.SYSTEM.\E # Match literal string "com.sap.fw.tr.SYSTEM."
\p{javaJavaIdentifierStart} # Match 1 - starting character of a Java identifier
\p{javaJavaIdentifierPart}* # Match 0 or more - part characters of a Java identifier
Эта модель позволяет использовать java.lang.Character
классов имеют, где вы предварять java
перед именем методов java.lang.Character
классов.
Регулярное выражение проверяет символ на основе методов Character.isJavaIdentifierStart
и Character.isJavaIdentifierPart
.
Вместо этого используйте '[A-Z ]'. –
это может быть число также ?? – Amitesh