正则区分大小写的用法: (?i), (?-i), (?i:X), (?-i:X)
来源:互联网 发布:淘宝商城品牌故事范文 编辑:程序博客网 时间:2024/05/22 05:22
对应的内嵌标志表达式是 (?i),它有四种形式:1,(?i)2,(?-i)3,(?i:X)4,(?-i:X)不带有 - 的是开标志,带有 - 的是关标志。把上面的代码改成这样: Java code public class Test { public static void main(String[] args) { String str = "Book"; String regex = "(?i)book"; System.out.println(str.matches(regex)); }} 我们就达到了同样的效果,当然这样并不是最好的,因为字符串中只有 B 是大写的,我们没有必要把所有的字符都进行不区分大小写匹配,我们可以在打开标志,用 (?i) 的第二种形式马上关掉它: String regex = "(?i)b(?-i)ook";这样的话,只有 b 是区分大小写了,而 (?-i) 后面的还是得区分大小写匹配的。这样写可能看上去很不顺眼,我们还能使用第 3 种形式直接指定某些字符是不区分大小写的。 String regex = "(?i:b)ook";这样的表达式与上面的那个在语义上是相同的。就效率上肯定是优于一下子开,一下子关的。可见内嵌标志表达式要比指定编译参数的功能强大许多。使用建议:如果能确定某些字符的大小写时,尽量使用已确定的字符,对于不确定的可以采用(?i:X) 的方式指定。因此打开不区分大小写开关时,对匹配的性能是有一定影响的。思考一下:String regex = "(?i)b(?-i:oo)k"; 这个表达式的意思?
0 0
- 正则区分大小写的用法: (?i), (?-i), (?i:X), (?-i:X)
- ++i,i++,--i和i--的区分
- X I N的开始
- 不区分大小写的模式,在正则表达式的最后正斜杠后面添加一个字符“i”,比如/cat/i
- 正则 (?i,m,s,x,g)
- Succ(x),Pred(X),inc(x,i),dec(x,i)
- i++和i++的用法
- [python学习笔记]'i += x'和'i = i + x'的区别
- 关于i++和++i的有效区分
- js正则表达式中/g /i /m /e /x /s的用法
- 正则表达式中/g /i /m /e /x /s的用法
- x += i与x=x+i
- I
- I
- ++i
- I
- I
- i
- Caffe学习总结(二)——caffe环境搭建
- C#控制台基础 改变string中的一个元素,string像一个只读的char 数组
- 统计学习理论
- win7桌面坐标突然变了
- 局部变量Executors创建线程池后一定要关闭
- 正则区分大小写的用法: (?i), (?-i), (?i:X), (?-i:X)
- 【NOIP2011模拟9.20】统计方案
- 快速排序
- Codeforces Round #326 (Div. 2) E. Duff in the Army
- 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
- Android-Resources-Hodgepodge(Android资源大杂烩)
- Word2Vec原理详解
- wifi驱动的理解(2)——usb接口在wifi模块中的角色
- At Commands:从白痴到大师的修炼历程(三)