「java正则匹配查找」java实现正则表达式匹配
今天给各位分享java正则匹配查找的知识,其中也会对java实现正则表达式匹配进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java正则表达式
- 2、java正则表达式匹配
- 3、java正则表达式是什么?
- 4、JAVA正则表达式查找字符串
- 5、java 正则匹配
java正则表达式
Java 正则表达式和 Perl 的是最为相似的,正则表达式就是规则表达式。
Java中正则表达式与之前使用的Python是有区别的,区别在于Java对于反斜线(\)处理的不同。 在Python中”\d”表示 匹配一位数字(0-9),而Java中匹配一位数字(0-9),需要的正则表达式为”\\d”。 不过换行符和制表符只需要单反斜线“\n\t”。
正则表达式定义了字符串的模式。可以用来搜索、编辑或处理文本。不仅限于某一种语言,但是在每种语言中有细微的差别。
java正则表达式匹配
因为java的正则表达式在是字符串里的,\是java字符串中的转义符。\也是正则表达式中的转义符。那么只加一个\的话,只能说明在字符串中转义符,而java需要进一步把普通字符串中的\变成正则表达式中的\,像是更深一则转化的意思,这样\\以后的意思是正则表达式中的转义符(\)。
要把\把变成正则表达式中的\,所以\\是转义了一个\
我的回答简而言之,在java中(别的语言有别的规矩),正则表达式字符串,和普通字串是两个东西。
java正则表达式是什么?
java正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。
和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。
正则表达式的基本操作:
正则表达式定义:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
JAVA正则表达式查找字符串
可以把所有的的输出都看成一个完整的字符串
回车键是 “\n”
String aaa = "";//aaa就是所有的字符串拼起来的字符串
然后用字符串截取 aaa = aaa.subString(0,aaa.length-1);
这样末尾的逗号就去掉了
java 正则匹配
package baiduTest2;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONProcess {
public JSONArray getJsonObject(String str){
JSONArray jo=JSONArray.fromObject(str);
return jo;
}
public void writeExcel(JSONArray ja) throws Exception{
Map map=new LinkedHashMap();
map.put("id", "id");
map.put("tag1", "tag1");
map.put("tag2", "tag2");
map.put("tag3", "tag3");
map.put("tag4", "tag4");
map.put("tag5", "tag5");
map.put("tag6", "tag6");
map.put("tag7", "tag7");
map.put("tag8", "tag8");
HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格并设置表格默认列宽度为25个字节
HSSFSheet sheet = workbook.createSheet("sheet1");
sheet.setDefaultColumnWidth((short) 25);
// 生成表格标题
HSSFRow titleRow = sheet.createRow(0);
int columnLength1 = 20;
HSSFCell[] title = new HSSFCell[columnLength1];
for (int i = 0; i columnLength1; i++) {
title[i] = titleRow.createCell((short) i);
title[i].setEncoding(HSSFCell.ENCODING_UTF_16);
title[i].setCellValue("");
}
// 生成表格表头行
HSSFRow headerRow1 = sheet.createRow(0);
HSSFCell[] header1 = new HSSFCell[columnLength1];
Iterator it=map.keySet().iterator();
int count=0;
while(it.hasNext()) {
header1[count] = headerRow1.createCell((short) count);
header1[count].setEncoding(HSSFCell.ENCODING_UTF_16);
header1[count].setCellValue(map.get(it.next()).toString());
count++;
}
// 遍历集合数据,产生数据行
FileOutputStream out = new FileOutputStream("E:/excelTest.xls");
int cellNum = 0;
if (ja != null) {
for (int rownum = 0; rownum ja.size(); rownum++) {
HSSFRow row = sheet.createRow(rownum + 1);
JSONObject json = (JSONObject) ja.getJSONObject(rownum);
HSSFCell[] cell = new HSSFCell[columnLength1];
int counter=1;
cell[0] = row.createCell((short) 0);
cell[0].setEncoding(HSSFCell.ENCODING_UTF_16);
cell[0].setCellValue(json.get("id").toString());
JSONArray ja1 = (JSONArray) json.getJSONArray("tags");
for(int j=0;jja1.size();j++){
JSONObject json1=(JSONObject)ja1.get(j);
Iterator it1=json1.entrySet().iterator();
String key=it1.next().toString();
cell[counter] = row.createCell((short) counter);
cell[counter].setEncoding(HSSFCell.ENCODING_UTF_16);
cell[counter].setCellValue(key.split("=")[1]);
counter++;
}
}
}
workbook.write(out);
out.close();
}
public static void main(String[] args) {
JSONProcess jsonProcess=new JSONProcess();
String str="[{\"id\":1237869662,\"tags\":[{\"201201310009409169\":\"沙海\",\"weight\":\"123\"},{\"211007220000015286\":\"惊叹号\",\"weight\":\"117\"},{\"201110220006272797\":\"漫工厂\",\"weight\":\"5\"},{\"201102070003148762\":\"超好看\",\"weight\":\"28\"},{\"520\":\"出版人\",\"weight\":\"858\"},{\"2328\":\"作家\",\"weight\":\"5632\"},{\"4029\":\"盗墓笔记\",\"weight\":\"57495\"},{\"16115\":\"南派三叔\",\"weight\":\"754\"}]},{\"id\":2899165812,\"tags\":[{\"34735\":\"学生一族\",\"weight\":\"124648\"},{\"12544\":\"热爱生活\",\"weight\":\"130120\"},{\"285\":\"音乐\",\"weight\":\"5374344\"},{\"983\":\"水瓶\",\"weight\":\"69854\"},{\"464\":\"美食\",\"weight\":\"19040573\"}]}]";
JSONArray ja=jsonProcess.getJsonObject(str) ;
try {
jsonProcess.writeExcel(ja);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
那是要我写了,我是有多闲啊。
其实这是json结构的字符串啊。在java里面很好处理啊,有现成的类处理这种字符串的。
放到txt或者excel也不难啊。但是代码量挺多的。
你需要的jar包。
commons-beanutils.jar
commons-collections.jar
commons-httpclient.jar
commons-lang.jar
commons-logging.jar
ezmorph-1.0.3.jar
json-lib-2.3-jdk15.jar
poi-2.5.1.jar
因为百度只能上传一个附件,其他jar包你自己弄吧。在百度搜索就行。
java正则匹配查找的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java实现正则表达式匹配、java正则匹配查找的信息别忘了在本站进行查找喔。
发布于:2022-12-04,除非注明,否则均为
原创文章,转载请注明出处。