首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不属于4个数字组的一个或两个数字的正则表达式模式

不属于4个数字组的一个或两个数字的正则表达式模式
EN

Stack Overflow用户
提问于 2020-06-18 00:18:20
回答 1查看 46关注 0票数 1

我正在尝试编写一个正则表达式模式,它将在Data Studio报告(使用RE2)中用来提取1到13之间的第一个数字。

下面是我想要的一个例子:

代码语言:javascript
复制
8X/CS2 = 8
Experiment = no match
7Y/CS3 = 7 
7Y/CS2 = 7
2019-10T/Tk1 = 10
2019-7x/Pe4 = 7
2019-8x/Pe4 = 8
2019-12E/Tk-II = 12
2019-12D/Ps-4 = 12

我已经确定([1-9]|1[0123])将提取数字。

RE2不支持负向回溯,所以我不能使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 00:28:46

下面的正则表达式似乎起作用了:

代码语言:javascript
复制
(?:^|\D)(1[0123]|[1-9])(?:\D|$)

号码本身将在第一个捕获组中可用。

Demo

以下是对该模式的解释:

代码语言:javascript
复制
(?:^|\D)         match either start of string or non digit character
(1[0123]|[1-9])  match 1-13
(?:\D|$)         match either end of string or non digit character

这个想法是匹配1-13,它被两侧的边界包围,被定义为不是数字的东西。请注意,使用lookarounds,我们可以更容易地编写以下代码:

代码语言:javascript
复制
(?<!\d)(1[0123]|[1-9])(?!\d)

但是,由于您的正则表达式不支持这一点,我们必须使用其他方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62433630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档