从零打造你的FOC轮腿机器人:一个完整开源项目的实战指南
2026/7/11 10:06:38
除了Pattern和Matcher的常用方法,Java 提供了一些辅助方法和String里的正则方法,可以让正则操作更方便。
Pattern.quote(String s)publicstaticStringquote(Strings)s转换为字面量匹配的正则表达式.,*,?等)会被当作普通字符处理,不再具有特殊含义importjava.util.regex.Pattern;publicclassQuoteDemo{publicstaticvoidmain(String[]args){Stringinput="a.b*c?";Stringregex=Pattern.quote(input);// 将特殊字符转义booleanmatch=Pattern.matches(regex,"a.b*c?");System.out.println(match);// 输出 true}}💡 说明:
"a.b*c?"作为正则,会匹配任意一个字符 + b + 任意次数的 c + 可选 ?Pattern.quote()后,匹配严格完全等于字符串本身Pattern.toString()publicStringtoString()Pattern对象对应的正则表达式Patternp=Pattern.compile("\\d{3}-\\d{2}-\\d{4}");System.out.println(p.toString());// 输出 \d{3}-\d{2}-\d{4}String类中的正则方法Java 的java.lang.String也提供了几个与Pattern等效的方法,让你直接对字符串操作正则:
| 方法 | 功能 | 等效 Pattern 方法 |
|---|---|---|
boolean matches(String regex) | 判断字符串是否完全匹配正则 | Pattern.matches(regex, str) |
String[] split(String regex) | 按正则分割字符串,去掉尾部空字符串 | Pattern.compile(regex).split(str) |
String[] split(String regex, int limit) | 按正则分割字符串,限制拆分次数 | Pattern.compile(regex).split(str, limit) |
String replace(CharSequence target, CharSequence replacement) | 替换字面量子串 | 不是正则,只替换字符串字面量 |
String.matches()Stringstr="12345";booleanmatch=str.matches("\\d+");// 判断是否全部是数字System.out.println(match);// 输出 true✅ 注意:matches()要求整个字符串匹配,不是部分匹配。
String.split()Stringstr="one:two:three";String[]parts=str.split(":");for(Strings:parts){System.out.println(s);}输出:
one two threeString.replace()Stringstr="aaa";Stringresult=str.replace("aa","b");System.out.println(result);// 输出 ba💡 说明:
"aa"重叠部分当成两次匹配Pattern.quote():把字符串转成字面量正则Pattern.toString():查看当前正则表达式String类方法:方便快捷,适合简单匹配、拆分或替换✅ 建议:
Pattern和MatcherString自带方法