[[:jletterdigit:]]到古典正则表达式

时间:2011-01-05 14:53:35

标签: java jflex

JFlex中[[:jletterdigit:]]中有哪些字符? 我需要将[[:jletterdigit:]]翻译成经典的正则表达式。

2 个答案:

答案 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

from the Java API