100分求个正则表达式,项目很急,忙大家帮下忙!

xiehui888 2009-07-31 09:44:58
现在我在用java处理报文,对于报文字段的检测,我感觉很棘手,因为存在这样的情况:


相对位移 长度 属性 名称 值域 填写标志 说明
0 10 A 市场编号 O 不足长度后补空格, 下同


其中属性A为表示字母或者数字:public static final String ACharSet = "[a-zA-Z0-9]";



可是加入了空格我到底该怎么办啊,因为我不知道加了多少个空格,真是棘手




另外希望可以写出这个正则表达式的人,

也写出想应的正则表达式


将原字符串按照标准的格式显示出来!
...全文
261 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
actor_3348 2009-08-07
  • 打赏
  • 举报
回复
观望中、。。。。
zqmlf2000 2009-08-07
  • 打赏
  • 举报
回复
帮顶
猿敲月下码 2009-08-07
  • 打赏
  • 举报
回复
LZ你看看是不是这样的:
import java.util.regex.*;

public class MyRegex
{
public static final String ACharSet = "[a-zA-Z0-9]";

public static void main(String[] args)
{
// 这里有多个空格
String s = "0 10 A 市场编号 O 不足长度后补空格, 下同";
// 把2个以上的空格转化成1个空格
s = s.replaceAll(" {2,}", " ");
// 获取属性值,先用空格隔开放进数组里面取出第三个元素值
String sProperty = s.split(" ")[2];
Matcher m = Pattern.compile(ACharSet).matcher(sProperty);
if (m.find())
{
System.out.println("YES");
} else
{
System.out.println("NO");
}
}
}
xiehui888 2009-08-06
  • 打赏
  • 举报
回复
100 分没人要吗?
xiehui888 2009-08-02
  • 打赏
  • 举报
回复
没有正则表达式强人站出来吗???
老张-AI 2009-08-01
  • 打赏
  • 举报
回复
楼主想实现这个有点难啊

关注牛人解答
Monkey_D_Luffy 2009-08-01
  • 打赏
  • 举报
回复
正则表达还在学习中,期待高手出现 ,
希望楼主能尽快解决
bigbug9002 2009-07-31
  • 打赏
  • 举报
回复
用正则,语句少些,效率不一定高.
xiehui888 2009-07-31
  • 打赏
  • 举报
回复
2楼的 空格可以有 在没有满足报文标准的长度的情况下可添加空格
xiehui888 2009-07-31
  • 打赏
  • 举报
回复
4楼的

Pattern.compile("\\w+\\s+").matcher(输入);


如果对方传过来的报文时这样的 "1(空格) 2345(空格) "


报文的长度是固定的,如果出现这样的情况

这个就难判断啦!



3楼的 那样截取字符串太麻烦啦, 我想用一个正则表达对所有报文的字段进行一次性验证


一个个弄真麻烦,效率极其低下,


我现在采取的是动态生成正则表达式

每次生产不一样的表达 需要编译


这么多的的报文并发处理的时候


何来的效率

FlashDragon 2009-07-31
  • 打赏
  • 举报
回复
既然处理的是报文,那么报文的结构就是固定不变的,几个字符代表什么属性都固定,
可能把报文字符串分解之后,再trim进行空格处理,再用正则表达式进行判断即可。
dreamover 2009-07-31
  • 打赏
  • 举报
回复
看不太懂题目什么意思,空格正则中可以用“[ ]”,或是空白符“\s”,包括空格,制表符、换行符等。

Pattern.compile("\\w+\\s+").matcher(输入);
bigbug9002 2009-07-31
  • 打赏
  • 举报
回复
用substring 每10个字符提取一次,
对提取出来的10个字符,trim(),再用正则的分组提取每一项的数据。
closewbq 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiehui888 的回复:]
可是加入了空格我到底该怎么办啊,因为我不知道加了多少个空格,真是棘手
[/Quote]
楼主意思是,不能有空格码?还是不管空格只判断是否是字母数字?
西瓜 2009-07-31
  • 打赏
  • 举报
回复
先把这个字符串去空格啊

用 trim()

然后在用正则去匹配
nihuajie05 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bigbug9002 的回复:]
用正则,语句少些,效率不一定高.
[/Quote]
java的正则实现问题,Perl和Ruby的实现都还是比较很快捷的

(\w+|(?:\s+))+

要不要试试?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧