Java字符串简化_Java 简化正则表达式的使用

使用

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 + "\"");

}

}

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持聚米学院!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值