Regex JFlex正则表达式中的特殊字符

Regex JFlex正则表达式中的特殊字符,regex,jflex,Regex,Jflex,我想在JFlex的正则表达式中包含所有特殊字符。所以我准备了一个如下 P = ("_"|"-"|"/"|"."|","|"~"|"!"|"@"|"#"|"$"|"%"|"^"|"&"|"*"|"|"|"("|")"|"="|"+"|"|"|"\"|":"|";"|"""|"<"|">"|"?"|"`"|"{"|"}"|"["|"]"|"'") 以下代码>P P

我想在JFlex的正则表达式中包含所有特殊字符。所以我准备了一个如下

P = ("_"|"-"|"/"|"."|","|"~"|"!"|"@"|"#"|"$"|"%"|"^"|"&"|"*"|"|"|"("|")"|"="|"+"|"|"|"\"|":"|";"|"""|"<"|">"|"?"|"`"|"{"|"}"|"["|"]"|"'")
以下代码>P P

  • 有没有人能告诉我,有没有其他方法可以更优化地覆盖所有特殊角色

  • 另外,请您指出上面的正则表达式有什么错误,因为它给了我“行尾的未终止字符串”。编译错误


  • 要解决问题,您需要使用反斜杠
    \\
    来避开反斜杠
    \

    定义这些字符的一个更简单的方法是使用一个

    [-/.,~!@$%^&*.(){}\[\]?=+\\:;“`]
    
    您可以继续向类中添加要包含的字符


    注意:您可以在

    中引用特殊字符,以将正则表达式中的所有特殊字符包含在JFlex中

    我认为排除数字、字母、空格和制表符比提及所有其他可能性更容易。 使用此正则表达式:

    [^0-9a-zA-Z\n\t ]?
    

    你可以把它们组合在一起。[\-\/~]等。编译错误是由转义序列引起的。如果是:P=(“U““““””””“““““““;””“““““““““““;””““““”””;““““““““““““““;;”(”(U U U U““““““““;;;;;;;;;;;;““““““““;;;;;;;”””“““““““““““;;;;;;;;;””””””;;;;;;;;;;;““““““““““““““““““;;;;;;;;;””””””,”,”,”,”,””””””””;;;;;;“““““““““““““““““““““““““““““““““““““““““““““您必须在
    “\”
    中避开反斜杠。您是否希望匹配“所有内容而不是空格或单数”?(可以表示为
    [^\s0-9A-Za-z]
    而且你不能意外忘记一个字符。)在我身上工作。只是“,”和^缺少。但是在一个字符类中只有5个特殊字符;除了
    [
    ]
    ^
    当第一个字符时,
    -
    当不是第一个或最后一个字符时,当然还有反斜杠,所有字符都失去了它们的特殊意义。@Bohemian这是正确的,元字符序列和ascii字符类除外。
    [^0-9a-zA-Z\n\t ]?