java 亲测正则表达式获取 大括号小括号内容,判断数字和小数

获取大括号小括号内容

项目开发用到了,暂做个简单记录

	private static String regex = "\\{([^}]*)\\}";//匹配大括号
    private static String regexx = "\\([^\\)]*\\)";//匹配小括号
    public static void main(String[] args) {
        String dakuohao = "{a+b}={c+d}>{d}";
        Pattern compile = Pattern.compile(regex);
        Matcher matcher = compile.matcher(dakuohao);
        while(matcher.find()){
            String group = matcher.group();
            System.out.print(group+";");
        }

        System.out.println();

        String xiaokuohao = "(ab)=(cd)>(dg)";
        Pattern comp = Pattern.compile(regexx);
        Matcher mat = comp.matcher(xiaokuohao);
        while(mat.find()){
            String group = mat.group();
            System.out.print(group+";");
        }
    }

在这里插入图片描述

判断数字或者小数或数字小数混合

  • 整数 ^([0-9]{1,}[.][0-9]*)$
    在这里插入图片描述

  • 小数 ^([0-9]{1,}[.][0-9]*)$
    测试的时候我也找了不少博客,感觉多数人的都不能避免数字中的特殊符号

  • 在这里插入图片描述

  • 小数和数字混合 (^[0-9]*$)|(^([0-9]{1,}[.][0-9]*)$)

在这里插入图片描述

  • 是否是数字 “^-?\d+(\.\d+)?$”

获取一个字符串中的所有数字

    public static String getNum(String cykb) {
        String regEx="[^0-9]";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(cykb);
        return m.replaceAll("").trim();
    }

英文数字下划线

"^(?!.*?_$)[a-zA-Z][a-zA-Z0-9_]*$"
(?!.*?_$) 不已下划线结尾,
(?!_) 不已下划线开头,
[a-zA-Z]字母开头
[a-zA-Z0-9_] 字母数字下划线

英文数字下划线中文

"^(?!.*?_$)[a-zA-Z0-9_\\u4e00-\\u9fa5\\.\\u0800-\\u4e00]*$"
^(?!.*?_$)  不已下划线结尾

下划线替换

  StringUtils.replace(infoVo.getChannelName(),"_","\\_")
  StringUtils.replace(infoVo.getChannelName(),"%","\\%")

正则判断是否有汉字

import java.util.regex.Pattern;
import java.util.regex.Matcher;
// 如果找到任何匹配项,find() 方法将返回 true,表示字符串中包含汉字;如果没有找到匹配项,将返回 false。
public class Main {
    public static void main(String[] args) {
        String str1 = "Hello, 你好!";
        String str2 = "Hello, World!";

        boolean containsChinese1 = containsChinese(str1);
        boolean containsChinese2 = containsChinese(str2);

        System.out.println("str1 contains Chinese characters: " + containsChinese1);
        System.out.println("str2 contains Chinese characters: " + containsChinese2);
    }

    public static boolean containsChinese(String str) {
        String pattern = "[\\u4e00-\\u9fa5]";
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);
        return m.find();
    }
}

若还有别的正则,后续补充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值