站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题正则表达式的问题,大虾帮帮忙,给出答案马上给分,

正则表达式的问题,大虾帮帮忙,给出答案马上给分,

摘要: 正则表达式的问题,大虾帮帮忙,给出答案马上给分,


JAVA里使用正则表达式

判断一个字符串是否是赋值表达式.例如: a2=0;a2=b;都是,但2a=0;a2==a2;a2=2a;就不是,也就是说要判断左值(右值)是否合法


自己顶上去,


[_A-Za-z]+(=){1}[_A-Za-z0-9]+


试完马上给分



楼上的不用试了,用眼睛都可以看出那个正在表达式很多都不能得
比如
a = 0

a =
0

这些也是合法的赋值表达式


恩,的确是不完整,仍然谢谢楼上2位,
还请高手帮忙,分不够就加,


请问楼上的
a =
0
判断一个字符串!怎么理解!
至于a = 0可以先处理

小弟不才,请给一个表达式,学习学习


你要完整的,呵呵,工程大了
我举个例子
String xxx = "a = 0" ; String yyy = "b = 0";

上面2个也不是赋值表达式,而是一个字符串,用正则表达式几乎无法判断,还要计算本行中的双引号呢。

如果要写一个完整的要考虑好多情况呢。


[_A-Za-z]+(/s)*(=){1}(/s)*[_A-Za-z0-9]+
判断一个"字符串是否是赋值表达式"
我想应该能做到了


楼山的是吗?

int b = 0;
boolean a = (b == 0);

那你的正在表达式能不能判断
boolean a = (b == 0);
这个赋值表达式呢?


谢谢 iouzhui(从来不改变)的热心解答,也谢谢其他几位

刚测试了一下,发现您的表达式还有几个问题:
1. 上面括号里的/s不能通过编译,我把他换成/t可以,但这样就只能判断Tab而不能判断空格
2. 变量首位不能是数字,(这个没判断),
3. 对于 dunne() 的问题,iouzhui(从来不改变) 的表达式是可以区分==以及()(甚至你提出的")


楼上的不能用split先把他截成2段在考虑吗?
([a-zA-Z])*=(0-9)*
这个行不行啊?


回 newplayerone() 用Split(),那分割符用什么("="? "=="?)
还有你上面的表达式不能满足,参见 iouzhui (8)兄的,我等下修改好,也贴出来


对于 dunne() 的问题,iouzhui(从来不改变) 的表达式是可以区分==以及()(甚至你提出的")

你有没有测过呀,大哥
[_A-Za-z]+(/s)*(=){1}(/s)*[_A-Za-z0-9]+
这个对于
boolean a = (b == 0);
根本就找不到!


至于"问题,就更不用说了
要计算本行复制表达式前的引号次数,同时还要判断是不是/"这种转意引号。

这只是最简单的要处理的,还没有算上如果赋值表达中含有注释的情况。



呵呵,dunne()想的真广,我只要简单的判断是不是类似A=B的赋值表达式,谢谢你的思路.
不过还有个问题,就刚刚说的/s 在我这里编译是 illegal escape character,怎么判断他有多个空格呢


[_A-Za-z]+(//s)*(=){1}(//s)*[_A-Za-z0-9]+


谢谢
dunne (2)兄.


↑返回目录
前一篇: 关于类型提升(byte->int)的一点疑惑
后一篇: 菜鸟提问:如何用数组构成链表实现数三退一