工作学习笔记(二) 正则表达式
和昨天写的StringUtils.split()和string.split()函数一块学到的还有正则表达式,虽然光看名字感觉会有点高深,但是学会了还是很好用的。
-
正则表达式
正则表达式是一种用于匹配和操作文本的强大工具,是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。
正则表达式可以在文本中查找、替换、提取和验证特定的模式。正则表达式主要用于复杂文本处理,如模式匹配、格式检验、文本替换等。常用的通配符有:^, $, *, ., , -, +, ?, &, |, (), [], {} -
为什么要使用正则表达式
典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。 -
运算符优先级
-
转义符号: \ 是用于转义其他特殊字符的转义符号。它具有最高的优先级。
示例:\d、. 等,其中 \d 匹配数字,. 匹配点号。 -
括号: 圆括号 () 用于创建子表达式,具有高于其他运算符的优先级。
示例:(abc)+ 匹配 "abc" 一次或多次。 -
量词: 量词指定前面的元素可以重复的次数。
示例:a* 匹配零个或多个 "a"。 -
字符类: 字符类使用方括号 [] 表示,用于匹配括号内的任意字符。
示例:[aeiou] 匹配任何一个元音字母。 -
断言: 断言是用于检查字符串中特定位置的条件的元素。
示例:^ 表示行的开头,$ 表示行的结尾。 -
连接: 连接在没有其他运算符的情况下表示字符之间的简单连接。
示例:abc 匹配 "abc"。 -
管道: 管道符号 | 表示"或"关系,用于在多个模式之间选择一个。
示例:cat|dog 匹配 "cat" 或 "dog"。
-
-
正则表达式修饰符
-
i
含义:ignore - 不区分大小写,描述:将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。 -
g
含义:global - 全局匹配,描述:查找所有匹配项 -
m
含义:multi line - 多行匹配,描述:使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 -
s
含义:特殊字符圆点 . 中包含换行符\n,描述:默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。