Java如何使用正则表达式截取指定字符串之间的内容呢?
下文笔者讲述使用正则表达式截取字符串的方法分享,如下所示
实现思路: 1.定义指定的正则表达式 2.匹配指定字符,find查找匹配后的结果
package com.java265; import java.util.list; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式匹配两个字符串之间的内容 */ public class RegexUtil { public static void main(String[] args) { String str = "<java265>ererere</java265>"; String rgex = "<java265>(.*?)</java265>"; System.out.println((new RegexUtil()).getSubUtil(str,rgex)); List<String> lists = (new RegexUtil()).getSubUtil(str,rgex); for (String string : lists) { System.out.println(string); } System.out.println((new RegexUtil()).getSubUtilSimple(str, rgex)); } /** * 正则表达式匹配两个指定字符串中间的内容 * @param soap * @return */ public List<String> getSubUtil(String soap,String rgex){ List<String> list = new ArrayList<String>(); Pattern pattern = Pattern.compile(rgex);// 匹配的模式 Matcher m = pattern.matcher(soap); while (m.find()) { int i = 1; list.add(m.group(i)); i++; } return list; } /** * 返回单个字符串,若匹配到多个的话就返回第一个,方法与getSubUtil一样 * @param soap * @param rgex * @return */ public String getSubUtilSimple(String soap,String rgex){ Pattern pattern = Pattern.compile(rgex);// 匹配的模式 Matcher m = pattern.matcher(soap); while(m.find()){ return m.group(1); } return ""; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。