首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用regex从整数范围内的字符串返回整数

使用regex从整数范围内的字符串返回整数
EN

Stack Overflow用户
提问于 2016-07-25 01:29:16
回答 3查看 182关注 0票数 0

我试图捕捉字符串中"hpercent=“中的最后一个数字,但前提是它在1-25的范围内。

示例字符串:

  • ipercent=11 x- hpercent=10
  • ipercent=21 x- hpercent=25
  • ipercent=10 x- hpercent=42
  • ipercent=2 x- hpercent=2
  • ipercent=15 x- hpercent=80
  • ipercent=56 x- hpercent=89

想要的“%”输出: 10,25,2

我试过:

  • 获取最后一个数字:^=+(?=$)
  • 我的范围仅为数字1-25:^1-9美元\10-9美元

只是不知道如何将上述正则表达式放在一个表达式中。

更新:

抱歉,对这件事很陌生。但我想我得把最后一个号码作为一个整体来记录。但是正如你所看到的,当它捕捉到最后一个数字时,它超过了25。

  • 这包括了所有的内容,也包括了26中的6:1-9美元、10-9美元、10-9美元、20-5美元
  • 这捕获了所有的东西,但不是个位数:^1-9$10-9$x 20-5$

我应该只捕捉1-25之间。

Adobe分类

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-25 01:35:21

这应该适用于hpercent=([1-9]|1[0-9]|2[0-5])(?![0-9])

扩容

代码语言:javascript
运行
复制
 hpercent=
 ( [1-9] | 1 [0-9] | 2 [0-5] )  # (1)
 (?! [0-9] )

由数字范围正则发生器http://www.regexformat.com/version_files/Rx5_ScrnSht0.jpg简化

票数 1
EN

Stack Overflow用户

发布于 2016-07-25 01:43:12

由于您没有指定正则表达式的风格,也没有指定所使用的编程语言,下面是使用vim的解决方案:

代码语言:javascript
运行
复制
/\v\=(\d|1\d|2[0-5])$/

发生了什么事

  • 只捕获=EOL ($)之间的东西
  • 然后捕获:
    • 从1到9的单数,
    • A 1后面跟着任何数字(所以10到19),
    • 从0到5(从20到25)

应该很容易将其转换为regex口味。

票数 0
EN

Stack Overflow用户

发布于 2016-07-25 03:20:21

只是为了把你的正则表达式放在一个表达式中:

代码语言:javascript
运行
复制
/([1-9]|1[0-9]|2[0-5])(?=$)/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38558541

复制
相关文章

相似问题

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