JFlex中[[:jletterdigit:]]中有哪些字符? 我需要将[[:jletterdigit:]]翻译成经典的正则表达式。
答案 0 :(得分:2)
澄清Michael Lowman的回答: 这就是the JFlex documentation所说的:
jletter和jletterdigit是预定义的角色类。 jletter包括Java函数Character.isJavaIdentifierStart返回true的所有字符,jletterdigit该Character.isJavaIdentifierPart的所有字符都返回true。
他写的是documentation of Character.isJavaIdentifierPart:
确定指定的字符是否可以是Java标识符的一部分 不是第一个角色。
如果满足以下任何条件,则字符可能是Java标识符的一部分 是的:
it is a letter it is a currency symbol (such as '$') it is a connecting punctuation character (such as '_') it is a digit it is a numeric letter (such as a Roman numeral character) it is a combining mark it is a non-spacing mark isIdentifierIgnorable returns true for the character
isIdentifierIgnorable依次定义为:
确定指定的字符(Unicode代码点)是否应该是 被视为Java标识符或Unicode中的可忽略字符 标识符
以下Unicode字符在Java标识符中是可忽略的 Unicode标识符:
ISO control characters that are not whitespace '\u0000' through '\u0008' '\u000E' through '\u001B' '\u007F' through '\u009F' all characters that have the FORMAT general category value
答案 1 :(得分:1)
如果满足以下任何条件,则字符可能是Java标识符的一部分:
这是一封信
它是货币符号(例如'$')
它是一个连接标点字符(例如'_')
这是一个数字
它是一个数字字母(例如罗马数字字符)
它是一个组合标记
它是一个非间距标记
isIdentifierIgnorable对字符
返回true