final String SINGLE_CHAR = "(\\?|≡|∧|<|>|\\||=|,|\\.|;|:|\\(|\\)|\\{|\\}|∈|∪|∩|\\+|\\*|%|/|\\-)|";
final String DOUBLE_CHAR = "([:<>!\\+\\*%\\-/]=|([/]\\*|[\\*]/)|\\+\\+|\\-\\-)|";
final String Variable = "([_a-zA-Z]+\\w*)";
final String Digit = "((\\d+\\.)?\\d+)|Φ";
以上是我在做词法分析时用到的正则表达式,请问除了这些以外的(比如说不合法的标识符等)可不可以用一个正则表示?或者把不匹配的也读出来呢
不然做词法分析的时候遇到非法的标识符时提示不了啊
多谢啦
final String DOUBLE_CHAR = "([:<>!\\+\\*%\\-/]=|([/]\\*|[\\*]/)|\\+\\+|\\-\\-)|";
final String Variable = "([_a-zA-Z]+\\w*)";
final String Digit = "((\\d+\\.)?\\d+)|Φ";
以上是我在做词法分析时用到的正则表达式,请问除了这些以外的(比如说不合法的标识符等)可不可以用一个正则表示?或者把不匹配的也读出来呢
不然做词法分析的时候遇到非法的标识符时提示不了啊
多谢啦
解决方案 »
- 我的代码有什么错误,为什么报java.lang.String cannot be cast to java.util.Vector
- 问一个数,为什么他不是float类型的?
- 十万火急!在线等待
- 有什么好的方法可以比较方便的删除字符串中的<...>标记块?
- 关于java动态数组的困惑
- 新手学习Java,请大家帮我看一个问题!万分感谢!!
- java那个控件能够实现多行文本不同颜色显示
- 谁告诉我,java与模式中代理一章中说的那个服务代理软件是什么??
- to 路人甲 :我找了半天也没在jdk的src中找到javac的类啊(sun.tools.javac),你知道在那里吗?
- 请问JB中http Server的编码设置在哪里??为什么我得ie上中文全是???号?
- 求解。。。。哭泣中。。
- JAVA中byte型-128如何表示!!
数字开头的或者¥a,#j,@s这些乱七八糟的我想用个正则表达式ERROR匹配出来
0a;
00a;
@sd $d #sa 以数字开头的和@#¥等开头的这些非法标识符读不出来
读出来以后是0,a,00,a,sd,d,sa
而且非法情况太多也不能列举完,用正则表示实在头痛
你做的那玩意有没有全半角要求?比如 ?? shift+? ^……shift+6 全半角有区别的
final String totalReg = Variable+DOUBLE_CHAR+SINGLE_CHAR+Digit+Error;
while((line=buf.readLine())!=null){
Pattern pattern=Pattern.compile(totalReg);
Matcher matcher=pattern.matcher(line);...我是用这个匹配的,楼上你说的那种匹配不成功的情况我考虑过啊,不过好像没有可以用的pattern或matcher函数可以用
value.addElement(matcher.group());
如果都不匹配(list到了最后),就用个打出他们或把他们存起来不就ok?