在网络通信时通常会用到xml,当传输数据流时都是进行字节传输,为区分所传输的数据的类型,通常会在传输字节两边加上属性标志,类似于html编程。
例如:假如客户端登录了,它就要向服务器发送一段字节流,说明用户名。假如这个人的用户名是:梅竹寒香,那么客户端就要对“梅竹寒香”进行xml包装,把它包装成:<user>梅竹寒香</user>。这样当服务器接收到这条消息,根据通信协议就会将这短消息解析成用户名的含义,这时服务器就要进行字符串的提取,因为只有“梅竹寒香”是所需的用户名,而<user></user>只是标志符号,只代表用户含义。这时就要用到字符的提取工作。
怎样实现符合标准字符串的快速提取呢?这是可以用正则表达式的方法,进行匹配提取。
示例如下(模拟演示:通常标志符都是加载所要提取的字节流的最外层):
package serverSocket;
import java.util.regex.Pattern;
public class DoWithString {
public static String getStringWithoutFlag(String IPS) {
String s = null;
String IPString = "(.+)(<user>.+</user>)*";//符合条件的正则表达式
if (IPS.matches(IPString)) {
int start = IPS.indexOf("<user>");//取得第一个<user>的位置
int last = IPS.lastIndexOf("</user>");//取得最后一个</user>的位置
s = IPS.substring(start + 6, last);//进行字符串的截取,得到用户名
}
return s;
}
public static void main(String args[]) {
//客户端有时向服务器传输的用户名中可能还夹杂着额外内容,这时要对其过滤
System.out.println(getStringWithoutFlag("额外内容<user>梅竹寒香</user>额外内容"));
//<mag></msg>代表是一则消息标志符,其中含有用户名,现在进行提取打印
System.out.println(getStringWithoutFlag("<msg>dfdsf<user>梅竹寒香</user></msg>"));
// 很有可能某个用户的用户名中含有标志符
System.out.println(getStringWithoutFlag("<user><user>梅竹寒香</user></user>"));
}
}
输出结果是:
- 大小: 397.1 KB
- 大小: 14.7 KB
分享到:
相关推荐
一个用于正则匹配检查的工具,用于使用正则表达式提取字符串!
其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"<title>XXXX</title>"中的文字XXXX,用正则表达式获取指定字符串内容中的指定内容,...
java 利用正则表达式从字符串中提取省、市、区、镇、乡等区域名称(包含少数民族地区),支持地址中无省,无市,无县情况。
给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...
主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下
MySQL正则表达式使用方式详细解释 案例分析 资料总结规则 正则表达式 详细内容简介 学习内容 MySQL进阶必学内容
提取了boost::regex里边的几个正则表达式匹配搜索接口,打包成DLL,以在不依赖于boost的情况下独立编译运行
获取 的功能是正则表达式来提取字符串中符合要求的文本; 替换 的功能是查找字符串中符合正则表达式的文本,并用相应的字符串替换; 分割 的功能是使用正则表达式对字符串进行分割。 正则表达式检索与替换 正则...
正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐。于是想到用正则表达式来完成,对java正则表达式提取字符的方式实例感兴趣的朋友一起学习吧
JS正则表达式提取字符串中所有汉字的脚本
主要介绍了JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取,需要的朋友可以参考下
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需
VBA正则提取A字符串之后B字符串之前中间的内容.txt
主要给大家介绍了利用正则表达式提取固定字符之间的字符串,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
“正则表达式自动生成器”可以自动生成正则表达式,测试正则表达式,可视化显示结果,导出提取字符串,你所要做的,仅仅是几下鼠标点击! 正则表达式自动生成器主要功能: 自动生成正则表达式 编辑并测试正则...
通过使用正则表达式,方便的提取出字符串中用双引号括起来的数字字段,并去掉其千分位号,也可用来去除一对双引号。可以借助贪婪模式,进行最小匹配。 string teststr="2323,232323,fff,\"344,34,734\",34365,65656,...
最近工作中遇到了一个需求,需要利用java获取字符串中的数字,尝试几种方法后发现利用正则表达式实现最为方法,下面这篇文章就主要介绍了Java通过正则表达式获取字符串中数字的方法,文中给出了详细的示例代码,需要...
给大家介绍了c++使用正则表达式提取关键字的方法,相对来说比较简单,同时给大家提到了c++通过正则表达式提取匹配到的字符串的方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
正则表达式可以从⼀个基础字符串中根据⼀定的匹配模式替换⽂本中的字符串、验证表单、提取字符串 等等。 想象你正在写⼀个应⽤,然后你想设定⼀个⽤户命名的规则,让⽤户名包含字符、数字、下划线和连字 符,以及...
正则表达式语法,速查表。 ------------------------------------------------ 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符...正则表达式作为一个模板,将某个字符模式与所搜索 的字符串进行匹配。