使用

RegexString.with(string).pattern(pattern).start() + 后续操作(matches,find或者是replace)
源码
package com;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author YouXianMing1987@iCloud.com 用于简化处理正则表达式
*/
public class RegexString {
private String string;
private Pattern pattern;
private Matcher matcher;
////////////////////// Constructor //////////////////////
/**
* 正则表达式对象
*
* @param str
* 初始化用的字符串
*/
public RegexString(String str) {
setString(Objects.requireNonNull(str));
}
////////////////////// Normal Method //////////////////////
/**
* 设置正则表达式的pattern
*
* @param regex
* 正则表达式语句
* @return RegexString
*/
public RegexString pattern(String regex) {
setPattern(Pattern.compile(regex));
return this;
}
/**
* 设置正则表达式的pattern
*
* @param regex
* 正则表达式语句
* @param flags
* 正则表达式flag值
* @return RegexString
*/
public RegexString pattern(String regex, int flags) {
setPattern(Pattern.compile(regex, flags));
return this;
}
/**
* 正则表达式对象开始匹配(设置完pattern后需要自行此语句才能做后续操作)
*
* @return RegexString
*/
public RegexString start() {
setMatcher(pattern.matcher(string));
return this;
}
/**
* 进行文本替换
*
* @param replacement
* 用来替换的文本
* @return 替换后的字符串
*/
public String replace(String replacement) {
return getMatcher().replaceAll(replacement);
}
/**
* 判断是否匹配(一次性匹配全部文本,不分步)
*
* @return 匹配了返回true,没有匹配返回false.
*/
public boolean matches() {
return getMatcher().matches();
}
/**
* 判断是否匹配(分步匹配文本,请结合while循环使用)
*
* @return 找到了返回true,没有找到返回false.
*/
public boolean find() {
return getMatcher().find();
}
/**
* find()操作成功后,可以通过matchString()获取匹配的字符串
*
* @return 匹配的字符串
*/
public String matchString() {
return getMatcher().group();
}
/**
* find()操作成功后,可以通过matchStart()获取匹配的起始位置
*
* @return 匹配的起始位置
*/
public int matchStart() {
return getMatcher().start();
}
/**
* find()操作成功后,可以通过matchEnd()获取匹配的结束位置
*
* @return 匹配的起始位置
*/
public int matchEnd() {
return getMatcher().end();
}
////////////////////// Static Method //////////////////////
/**
* [静态方法] 便利构造器
*
* @param str
* 初始化用的字符串
* @return RegexString
*/
public static RegexString with(String str) {
return new RegexString(str);
}
////////////////////// Getter & Setter //////////////////////
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public Pattern getPattern() {
return pattern;
}
public void setPattern(Pattern pattern) {
this.pattern = pattern;
}
public Matcher getMatcher() {
return matcher;
}
public void setMatcher(Matcher matcher) {
this.matcher = matcher;
}
}
示例
package com;
public class Main {
public static void main(String args[]) {
// 查找文本
{
String src = "This is my small example string which I'm going to use for pattern matching.";
RegexString string = RegexString.with(src).pattern("\\w+").start();
while (string.find()) {
System.out.println(string.matchStart() + "," + string.matchEnd() + " : " + string.matchString());
}
}
// 匹配
{
String src = "This is my small example string which I'm going to use for pattern matching.";
if (RegexString.with(src).pattern("^This.+$").start().matches()) {
System.out.println("Yes");
}
}
// 替换文本
{
String src = "This is my small example string which I'm going to use for pattern matching.";
System.out.println(RegexString.with(src).pattern("\\w+").start().replace("Regex"));
}
// 去掉字符串首尾的空格,以及字符串中间多余的字符串
{
String src = " This is my small example string which I'm going to use for pattern matching. ";
String tmp = RegexString.with(src).pattern("^\\s+|\\s+$").start().replace("");
String des = RegexString.with(tmp).pattern("\\s+").start().replace(" ");
System.out.println("\"" + des + "\"");
}
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# java
# 正则表达式
# Java 正则表达式详解
# JAVA正则表达式 Pattern和Matcher
# Java 正则表达式学习总结和一些小例子
# java中 利用正则表达式提取( )内内容
# java正则表达式提取数字的方法实例
# java正则表达式验证邮箱、电话号码示例
# Java/Js下使用正则表达式匹配嵌套Html标签
# 收集的一些常用java正则表达式
# Java正则表达式入门基础篇(新手必看)
# Java正则表达式过滤出字母、数字和中文
# 可以通过
# 判断是否
# 或者是
# 能做
# 没有找到
# 配了
# 找到了
# Pattern
# author
# Matcher
# param
# Constructor
# str
# requireNonNull
# setString
# public
# iCloud
# private
相关文章:
如何在IIS中新建站点并配置端口与IP地址?
如何高效搭建专业期货交易平台网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
建站三合一如何选?哪家性价比更高?
常州自助建站工具推荐:低成本搭建与模板选择技巧
建站VPS配置与SEO优化指南:关键词排名提升策略
如何配置FTP站点权限与安全设置?
常州企业建站如何选择最佳模板?
,网站推广常用方法?
高端建站如何打造兼具美学与转化的品牌官网?
济南专业网站制作公司,济南信息工程学校怎么样?
seo网站制作优化,网站SEO优化步骤有哪些?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
网站制作话术技巧,网站推广做的好怎么话术?
大连网站设计制作招聘信息,大连投诉网站有哪些?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何在Tomcat中配置并部署网站项目?
如何快速打造个性化非模板自助建站?
建站主机数据库如何配置才能提升网站性能?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
开源网站制作软件,开源网站什么意思?
如何在Windows 2008云服务器安全搭建网站?
nginx修改上传文件大小限制的方法
兔展官网 在线制作,怎样制作微信请帖?
如何选择高性价比服务器搭建个人网站?
Android滚轮选择时间控件使用详解
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
建站之星后台密码遗忘?如何快速找回?
如何零成本快速生成个人自助网站?
建站之星收费标准详解:套餐费用及年费价格表一览
威客平台建站流程解析:高效搭建教程与设计优化方案
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何通过虚拟主机快速搭建个人网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
制作网站的基本流程,设计网站的软件是什么?
中山网站制作网页,中山新生登记系统登记流程?
成都网站制作报价公司,成都工业用气开户费用?
如何零基础开发自助建站系统?完整教程解析
如何快速完成中国万网建站详细流程?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何在橙子建站中快速调整背景颜色?
高端云建站费用究竟需要多少预算?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
*请认真填写需求信息,我们会在24小时内与您取得联系。