正则表达式

正则表达式中限定符与定位符的使用

本文主要是介绍正则表达式中限定符与定位符的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 193. 有效电话号码
    • 思路
    • 代码
  • 快速查看表
    • 特殊字符表达
    • 限定符表达
    • 定位符表达

193. 有效电话号码

思路

使用正则表达式来检索符合要求的字符串。


需要找出固定的字符位置与可变字符的规律,然后用正则表达式中的普通字符、特殊字符、限定符、定位符来描述对应的规律。

使用正则表达式描述
1、表达(xxx) xxx-xxxx

^\([0-9][0-9][0-9]\) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

优化:

^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$
  • \:转义符
  • ^:限制开头
  • $:限制结尾
  • [0-9]:数字
  • [0-9]{3} :表示三位数

2、表达 xxx-xxx-xxxx

^[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

优化:

^[0-9]{3}-[0-9]{3}-[0-9]{4}$

3、同时表示xxx-xxx-xxxx和 (xxx) xxx-xxxx

^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$
  • ():标记一个表达式
  • |:指明两项之间的任意选择

代码

grep

grep -P '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt
  • -P:可以让grep使用perl的正则表达式语法,因为perl的正则更加多元化,能实现更加复杂的场景
    awk
awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt
  • //纯字符匹配

gawk

gawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt

快速查看表

特殊字符表达

限定符表达

限定符前面字符的出现次数

限定符 表达含义
* 出现次数>=0
+ 出现次数>=1
? 出现次数 0 or 1, 等价{0,1}
{n} 出现次数=n
{n,} 出现次数>=n
{n, m} n=< 出现次数<= m

定位符表达

定位符 表达含义
^ 字符串开始的位置
$ 字符串结束的位置
\b 限定单词(字)的字符,常用来确定一个单词,可以结合两个‘\b’使用
\B 限定非单词(字)边界的字符,用的很少
这篇关于正则表达式中限定符与定位符的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!