1

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

P = ("_"|"-"|"/"|"."|","|"~"|"!"|"@"|"#"|"$"|"%"|"^"|"&"|"*"|"|"|"("|")"|"="|"+"|"|"|"\"|":"|";"|"""|"<"|">"|"?"|"`"|"{"|"}"|"["|"]"|"'")
  1. 有人可以告诉我有没有其他方法可以以更优化的方式覆盖所有特殊字符?

  2. 您还可以指出上面的正则表达式有什么问题,因为它给了我“行尾未终止的字符串”。编译错误?

4

2 回答 2

1

在 JFlex 的正则表达式中包含所有特殊字符

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

[^0-9a-zA-Z\n\t ]?
于 2018-06-04T12:50:19.457 回答
0

要解决您的问题,您需要使用\反斜杠转义反斜杠\\

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

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

您可以继续添加要包含在课程中的角色。

注意:您可以在http://www.regular-expressions.info/characters.html引用特殊字符

于 2014-09-09T05:22:09.380 回答