正则表达式

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()));
}

 

posted @   得好好活  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示