「java正则匹配查找」java实现正则表达式匹配

博主:adminadmin 2022-12-04 18:06:08 60

今天给各位分享java正则匹配查找的知识,其中也会对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正则匹配查找的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-04,除非注明,否则均为首码项目网原创文章,转载请注明出处。