用正则表达式取特定文字的方法

如何用正则表达式获得指定的一串文字或数字

如图所示:要获取上面的一串数字,应该如何写表达式呢
一、简单粗暴
\d\s\d\s\d\s\d\s\d\s\d\s\d\s\d\s\d\s\d\s
上面是一个数字接一个空格,共5次组合
可以实现,但是如何文本里还有一串这样的数字,会出现两次,可能会出现歧义。
\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}\d{1}\s{1}
上面是一个数字接一个空格,共5次组合,{}里面的数字可以改为连续多个数字连续多个空格的模式
可以实现,但是如何文本里还有一串这样的数字,会出现两次,可能会出现歧义。

对于此种情况,让我们考虑用前缀及后缀来约束结果。来看看下面第二种方法。

二、匹配 姓 名 :\n 检 查 号 : 中间的内容,包含 姓 名 :\n 检 查 号 : 本身

表达式:
姓 名 :[\s\S]*?检 查 号 :

上图的结果,基本得到了要的结果,但是前缀和后缀不是我们要的结果,应该去掉。下面看看第三种方法。
三、匹配 姓 名 :\n 检 查 号 : 中间的内容,不包含 姓 名 :\n 检 查 号 : 本身

表达式:
(?<=姓 名 :\n)[\s\S]*(?=检 查 号 😃

这个方式的好处是,与第一种方法相比,不会有其他的干扰
至此,我们得到比较好的正则表达式解决方法。

posted @   老马识途远  阅读(565)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示