java正则表达式处理类

来源:互联网 发布:祛斑精华知乎 编辑:程序博客网 时间:2024/05/16 18:25
package com.metarnet.Execution.util;import java.io.UnsupportedEncodingException;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * String正则表达式匹配 * 闫帆 */public class StringUtil {/*** 函数名:strToInt 作 用:把字符串转为整型 参 数:s: 字符串型 返回值:整型**/public static int strToInt(String s) {int i = 0;try {i = Integer.parseInt(s);} catch (NumberFormatException illl) {i = 0;}return i;}/*** 函数名:strToInt 作 用:把字符串转为整型 参 数:s: 字符串型 参 数:itt: 整型 返回值:整型 如果返回值为‘0’则返回* itt;**/public static int strToInt(String s, int itt) {int i = strToInt(s);if (i == 0)i = itt;return i;}public static  String encode(String result, String code) {String res = null;try {res = new String(result.getBytes(), code);} catch (UnsupportedEncodingException ex) {System.out.println("charset:" + ex.getMessage());res = result;}return res;}/*** 正则表达式匹配,返回匹配成功的次数* * @param str*            原字符串* @param regEx*            正则表达式* @return 返回匹配成功的次数*/public static int findReturnCount(String str, String regEx) {int count = 0;Pattern p = Pattern.compile(regEx);Matcher matcher = p.matcher(str);while (matcher.find()) {count++;}return count;}/*** 正则表达式匹配,只要匹配成功一次,则返回true* * @param str*            原字符串* @param regEx*            正则表达式* @return 只要匹配成功一次,则返回true*/public static boolean findReturn(String str, String regEx) {boolean flag = false;String[] regExs = regEx.split("\\|");for (String regExStr : regExs) {Pattern p = Pattern.compile(regExStr);Matcher matcher = p.matcher(str);if (matcher.find()) {flag = true;return flag;}}return false;}/*** 正则表达式分割字符串* * @param str*            原字符串* @param regEx*            正则表达式* @param child*            子匹配,0匹配整个表达式,1匹配第一个括号内的表达式...* @return 返回分割后的字符串数组*/public static String[] splitStr(String str, String regEx, int child) {Pattern p = Pattern.compile(regEx);String formatStr = "";Matcher matcher = p.matcher(str);while (matcher.find()) {formatStr += matcher.group(child) + "`";}if (formatStr.equals("")) {return str.split("\\`");}return formatStr.split("\\`");}/*** 正则表达式分割字符串* * @param str*            原字符串* @param regEx*            正则表达式* @param child*            子匹配,0匹配整个表达式,1匹配第一个括号内的表达式...* @param column*            分割后字符串数组的长度* @return 返回分割后字符串数组的长度等于column的行的字符串数组*/public static String[] splitStr(String str, String regEx, int column,int child) {Pattern p = Pattern.compile(regEx);String formatStr = "";Matcher matcher = p.matcher(str);while (matcher.find()) {formatStr += matcher.group(child) + "`";}if (formatStr.equals("")) {return str.split("\\`");}return formatStr.split("\\`");}}例:判断一个字符串是否是以END结尾(结尾可存在特殊字符,不能存在字母数字和汉字)        String returnString="asd fsadf   " +"asdfasdfasd  fasdfa" +"sdf  asdsdc" +"asdfa  sdfa" +"dfasd   fcsd" +"casd  ascsdfEND";String parse="([\\s\\S]*?)END\\W*$";System.out.println(StringUtil.findReturn(returnString, parse));判断一个字符串是否是以END开头和结尾(开头结尾可存在特殊字符,不能存在字母数字和汉字)public static void main(String[] args) {String returnString="<ENDasd fsadf   " +"asdfasdfasd  fasdfa" +"sdf  asdsdc" +"asdfa  sdfa" +"dfasd   fcsd" +"casd  ascsdfEND>";String parse="^\\W*END([\\s\\S]*?)END\\W*$";System.out.println(StringUtil.findReturn(returnString, parse));}判断一个字符串是否是以END开头和结尾(开头不能存在任何字符,结尾可存在特殊字符,不能存在字母数字和汉字)public static void main(String[] args) {String returnString="ENDasd fsadf   " +"asdfasdfasd  fasdfa" +"sdf  asdsdc" +"asdfa  sdfa" +"dfasd   fcsd" +"casd  ascsdfEND";String parse="^END([\\s\\S]*?)END\\W*$";System.out.println(StringUtil.findReturn(returnString, parse));}判断一个字符串是否是以END开头和结尾(开头和结尾都不能存在任意字符)public static void main(String[] args) {String returnString="ENDasd fsadf   " +"asdfasdfasd  fasdfa" +"sdf  asdsdc" +"asdfa  sdfa" +"dfasd   fcsd" +"casd  ascsdfEND";String parse="^END([\\s\\S]*?)END$";System.out.println(StringUtil.findReturn(returnString, parse));}


-----------------------------------程序员 闫帆原创---------------------------------------

转载请注明原创人信息  程序员 闫帆yanfanvip