正则表达式 :(?s)(?i) ?: 表示的意思

 这个是正则表达式的模式修饰符。

  (?i)即匹配时不区分大小写。表示匹配时不区分大小写。

  (?s)即Singleline(单行模式)。表示更改.的含义,使它与每一个字符匹配(包括换行 符\n)。

  (?m)即Multiline(多行模式) 。 表示更改^和$的 含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的 精确含意是:匹配\n之前的位置以及字符串结束前的位置.)

  (?x):表示如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。

  (?e):表示本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。

  (?A):表示如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。

  (?E):与"m"相反,表示如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。

  (?U):表示和问号的作用差不多,用于设置"贪婪模式"。

?: (?)单个问号是不捕捉模式

写法如:(?:)

如何关闭圆括号的捕获能力?

而只是用它来做分组,方法是在左括号的后边加上:?,

这里第一个圆括弧只是用来分组,而不会占用捕获变量,*/

"(?:\\w+\\s(\\w+))"

例子:

String source = "111111\n#222222222222\n3333333333333\n4#4444444444444\n55555555";
        System.out.println(source.replaceAll("(?m)^#.*$", ""));
        System.out.println(source.replaceAll("#.*", ""));
        System.out.println(source.replaceAll("(?s)#.*", ""));

输出结果:

第一个输出:

第二个输出:

第三个输出:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值