使用

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
相关文章:
建站DNS解析失败?如何正确配置域名服务器?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
建站VPS选购需注意哪些关键参数?
PHP 500报错的快速解决方法
如何用搬瓦工VPS快速搭建个人网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
制作网站怎么制作,*游戏网站怎么搭建?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何自定义建站之星网站的导航菜单样式?
详解jQuery停止动画——stop()方法的使用
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在宝塔面板中创建新站点?
如何在腾讯云免费申请建站?
如何在建站之星网店版论坛获取技术支持?
如何规划企业建站流程的关键步骤?
金*站制作公司有哪些,金华教育集团官网?
建站主机核心功能解析:服务器选择与网站搭建流程指南
太原网站制作公司有哪些,网约车营运证查询官网?
实例解析Array和String方法
建站主机与虚拟主机有何区别?如何选择最优方案?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站主机选购指南:核心配置优化与品牌推荐方案
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星导航如何优化提升用户体验?
TestNG的testng.xml配置文件怎么写
网站制作服务平台,有什么网站可以发布本地服务信息?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何快速启动建站代理加盟业务?
建站上传速度慢?如何优化加速网站加载效率?
相册网站制作软件,图片上的网址怎么复制?
如何在西部数码注册域名并快速搭建网站?
中山网站推广排名,中山信息港登录入口?
江苏网站制作公司有哪些,江苏书法考级官方网站?
一键网站制作软件,义乌购一件代发流程?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
Android自定义控件实现温度旋转按钮效果
网站制作企业,网站的banner和导航栏是指什么?
购物网站制作公司有哪些,哪个购物网站比较好?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何在IIS中配置站点IP、端口及主机头?
如何用PHP快速搭建CMS系统?
MySQL查询结果复制到新表的方法(更新、插入)
如何实现建站之星域名转发设置?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
制作网站外包平台,自动化接单网站有哪些?
如何在服务器上三步完成建站并提升流量?
临沂网站制作公司有哪些,临沂第四中学官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。