大数据全系列 教程
1869个小节阅读:464.8k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。Scala 的正则表达式继承了 Java 的语法规则,Java 则大部分使用了 Perl 语言的规则。下表列出了常用的一些正则表达式规则:
表达式 | 匹配规则 |
---|---|
^ | 匹配输入字符串开始的位置。^.$ |
$ | 匹配输入字符串结尾的位置。 |
. | 匹配除"\r\n"之外的任何单个字符。 |
[...] | 字符集。匹配包含的任一字符。例如,"[abc]" 匹配"plain"中的"a"。 |
[^...] | 反向字符集。匹配未包含的任何字符。例如,"[^abc]" 匹配"plain"中"p","l","i","n"。 |
\A | 匹配输入字符串开始的位置(无多行支持) |
\z | 字符串结尾(类似$,但不受处理多行选项的影响) |
\Z | 字符串结尾或行尾(不受处理多行选项的影响) |
re* | 重复零次或更多次 |
re+ | 重复一次或更多次 |
re? | 重复零次或一次 |
re{ n} | 重复n次 |
re{ n,} | 重复>=n次 |
re{ n, m} | 重复n到m次 |
a|b | 匹配 a 或者 b |
(re) | 匹配 re,并捕获文本到自动命名的组里 |
(?: re) | 匹配 re,不捕获匹配的文本,也不给此分组分配组号 |
(?> re) | 贪婪子表达式 |
\w | 匹配字母或数字或下划线或汉字 |
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\s | 匹配任意的空白符,相等于[\t\n\r\f] |
\S | 匹配任意不是空白符的字符 |
\d | 匹配数字,类似 [0-9] |
\D | 匹配任意非数字的字符 |
\G | 当前搜索的开头 |
\n | 换行符 |
\b | 通常是单词分界位置,但如果在字符类里使用代表退格 |
\B | 匹配不是单词开头或结束的位置 |
\t | 制表符 |
\Q | 开始引号:\Q(a+b)\*3\E 可匹配文本 "(a+b)*3" 。 |
\E | 结束引号:\Q(a+b)\*3\E 可匹配文本 "(a+b)*3" 。 |
实时效果反馈
1. 关于Scala正则表达式的描述,错误的是:
A "[abc]"
匹配"plain"中的"a"。
B \Q(a+b)\*3\E
可匹配文本 (a+b)*3
,其中\Q
表示开始引号,\E
表示结束引号。
C re?
重复一次或多次。
D 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
答案:
1=>C re?
重复零次或一次。