正则表达式
java中使用正则
public static void main(String[] args) {
// 匹配4个字符, 第一个是字母但不能是aeiou,第二个是aeiou中的一个,第三个要字母但不能是aeiour,第四个是e
String a = "^[\\w^aeiou][aeiou][\\w^aeiour]e$";
boolean make = Pattern.matches(a, "make");
System.out.println("make = " + make);
}
作用 | |
---|---|
[a-z] | 中括号表示匹配1个字符,- 表示一个范围。匹配所有的小写字母中一个 |
[xyz] | 匹配x或y或z |
[^xyz] | ^在中括号中表示取反,除了xyz之外的所有字符 |
\d | 数字 |
\w | 单词:大小写字母,数字,下划线,相当于[a-zA-Z0-9_] |
. | 表示通配符,匹配任意一个字符。注:如果要匹配点号就必须转义,写成\. |
() | 表示一组,这里面的字符是一组整体 |
{n} | 前面的字符出现n次 |
{n,} | 前面的字符出现大于等于n次 |
{n,m} | 前面的字符出现大于等于n次,小于等于m次 |
+ | 前面的字符出现1次到多次 |
* | 前面的字符出现0次到多次 |
? | 前面的字符出现0次或1次 |
| | 或者 |
^ | 用在正则表达式开头,表示匹配开头 |
$ | 用在正则表达式结尾,表示匹配结尾 |
javascript创建正则
//方式1:
var reg = /^\d{3}$/; //创建的正则表达式对象,格式:以/开头和结尾,如果^$都加上就表示严格匹配
reg.test(value) // 如果value匹配,则返回 true
//方式2:这种方式,因为正则表达式写在一个字符串中,\需要转义
var str = "^\\d{3}$";
var reg = new RegExp(str);
匹配模式
// 忽略大小写比较:i
new RegExp("正则表达式","i")
/正则表达式/i
例子:
[a-z] // 匹配所有的小写字母
[A-Z] // 匹配所有的大写字母
[a-zA-Z] // 匹配所有的字母
[0-9] // 匹配所有的数字
[0-9\.\-] // 匹配所有的数字,句号和减号
[ \f\r\t\n] // 匹配所有的白字符 等价于 \s
[^\\\/\^] //除了(\)(/)(^)之外的所有字符
[^\"\'] //除了双引号(")和单引号(')之外的所有字符
^\s*$ // 匹配空行。
处理文本常用的正则
// $1 取匹配到的第一组字符,可以用括号括起来
// 在每行前加内容 aaa
^.{1} 替换成 aaa$1
// 在每行后面加内容 aaa
(.{1})\n 替换成 $1aaa\n
正则获取所有附合条件的字符
private static void lllll() {
String m3u8Txt ="@12.x.,clkd@23432kdsjflweuqf@2342354";
Matcher matcher = Pattern.compile("(@[\\d]+)|(ts_[\\d]+)").matcher(m3u8Txt);
final ArrayList<String> strings = new ArrayList<>();
while (matcher.find()) {
strings.add(matcher.group());
}
System.out.println("strings = " + Arrays.toString(strings.toArray()));
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通