我学正则表达式——价格之争( | 和\t的用法)

错别字的烦恼

一大早就接到了个任务,要用正则来识别价格的变动情况,价格表的信息如下:
苹果 6.00 09/17
平果 6.50 09/18
香蕉 3.00 09/17
香蕉 4.00 09/18
...

怎么才能找出苹果的价格呢?

灵机一动,还是用正则吧。噼噼啪啪的键盘声后,有了下面的表达式:
(苹果)\t(\d+\.\d+)\t(\d+/\d+)

上机一测,果真匹配了,价格就是group(2),不过,就找到了一个:
苹果 6.00 09/17


还有个苹果没找到,为什么???

我反复看了正则表达式,没问题!

再看看,再看看,我的眼睛就差贴到屏幕上了。

终于,我发现了,原来粗心的阿姨把苹果的草头给去掉了。。。。。。害我个苦找啊

怎么办呢?

|的用法

在正则表达式中,|是或的意思,

苹果|平果

的意思是,苹果和平果都可以,如果我们把上面的表达式改成:

(苹果|平果)\t(\d+\.\d+)\t(\d+/\d+)

就可以匹配出平果的信息了。


\的用法

上篇博文中,我们提到了()可以用来确定组。如果我们想匹配 (本身,又该怎么办呢?

下面我们来看看转义符的记号\,

在正则表达式中,定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为 转义字符 ,因为后面的字符,都不是它本来的ASCII字符意思。

为了让正则表达式匹配(,我们只要在前面加上\,让它变成\(就行。

注意:如果你只写一个(,没写),可是会要报错哦。

在前面中,我们看到了\d表示数字。
今天,我们又看到了一个新的转义字符,\t,t是table的缩写,\t表示是一个制表符。


小结

在本文中,我们学习了:
  1. | 表示或者的意思,Jim|Jack 表示Jim或者Jack
  2. \ 用来说明后面是特殊的符号或标记,\t表示制表符。

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...