练习题123-1:值得细细品味的字符拆分练习题【正则表达式】
创作者俱乐部成员
添加图片注释,不超过 140 字(可选)
练习题123:值得细细品味的字符拆分练习题【正则表达式】
用正则表达式函数写四个公式,将“偷懒有术工作有闲人生有味”分别拆分成第7、9、11、13行的样式
添加图片注释,不超过 140 字(可选)
要求:
○ 使用正则表达式函数
○ 每个公式正则表达式函数只用一次
样式一
添加图片注释,不超过 140 字(可选)
思考:
你能写出几个正则表达式?
最短的正则是几个字符?
能短到2个字符吗?
添加图片注释,不超过 140 字(可选)
参考答案1
=REGEXP(C2,".*?")
添加图片注释,不超过 140 字(可选)
解释:
小数点.
表示除换行符外的任意字符
星号*
表示0个或多个任意字符
问号?
表示懒惰匹配,能少匹配就少匹配。因此它会匹配到0个字符。
匹配0字符时它匹配到位置。
What?!位置是零字符????
解释:
添加图片注释,不超过 140 字(可选)
看不太懂的朋友请看以前的文章补一下功课:
此公式的星号也可用问号“?”,表示0个或1个
=REGEXP(C2,".??")
注意,两个问号的作用是不同的。
第一个表示0个或1个,第2个表示懒惰匹配。
添加图片注释,不超过 140 字(可选)
参考答案2
添加图片注释,不超过 140 字(可选)
解释:
符号 | 称为 "管道符" 或 "或字符",表示逻辑上的 "或"(OR)。它用于匹配多个选项中的任意一个。
()是分组,里面没内容,相当于空字符。空字符就是位置
添加图片注释,不超过 140 字(可选)
那如果将()省略呢?
恭喜你,你的公式已经缩到了最短,正则表达式只有两个字符,短得不能再短了!
=REGEXP(C2,"|.")
添加图片注释,不超过 140 字(可选)
友情提醒:
公式不能写成=REGEXP(C2,".|")
为什么呢,因为匹配顺序是从左到右的,左边的先匹配。
详细解释:
添加图片注释,不超过 140 字(可选)
参考答案3
公式:
=REGEXP(C2,"\K|.")
添加图片注释,不超过 140 字(可选)
这个公式由ExcelHome论坛网友jerrike提供。
解释:
元字符\K以前的文章中介绍过,就是挥起大砍刀将前面的匹配结果砍掉
详见:
结合参考答案2来看,在这里似乎对着空气砍了一刀。
那还有没其他写法呢,肯定是有的。
比如,将.改为\C装个逼凑个数也是可以的。
\C是干什么的?
详见:
最后总结一下
前面的公式看起来很多,本质上只有两个:
=REGEXP(C2,".??")
=REGEXP(C2,"|.")
还有哪些写法?
欢迎大家留言补充
未完待续,其他三种情形将陆续写成文章介绍。
敬请关注
添加图片注释,不超过 140 字(可选)
投票正则表达式难学吗?(5选1)
- 很难,难如登天 0
- 难,一用就废 1
- 还好 1
- 简单,多用就会了 2
- 很简单,易如反掌 0
创作者俱乐部成员