获取大括号小括号内容
项目开发用到了,暂做个简单记录
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();
}
}
若还有别的正则,后续补充