首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式匹配数值

正则表达式匹配数值
EN

Stack Overflow用户
提问于 2012-12-01 11:06:54
回答 5查看 1.1K关注 0票数 0

我在试着匹配一个模式:

代码语言:javascript
运行
复制
show_clipping.php?CLIP_id=*

发自:

代码语言:javascript
运行
复制
a href="javascript:void(0);" onclick="MM_openBrWindow('show_clipping.php?CLIP_id=575','news','scrollbars=yes,resizable=yes,width=500,height=400,left=100,top=60')">some text</a>

哪里

代码语言:javascript
运行
复制
*

只能是数值(例如: 0,1,1234)

结果必须返回全部内容(show_clipping.php?CLIP_id=575)

我试过的是:

代码语言:javascript
运行
复制
show_clipping.php\?CLIP_id=([1-9]|[1-9][0-9]|[1-9][0-9][0-9])

但是,我的尝试会将其余的数字从575截断,结果如下:

代码语言:javascript
运行
复制
show_clipping.php?CLIP_id=5
  1. 如何正确匹配数字部分?
  2. 另一个问题是,值575可以包含任何数字值,我的正则表达式在3位后不能工作,如何使它与无穷位数一起工作?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-01 11:10:07

您没有指定您正在使用的语言,所以下面是regex

代码语言:javascript
运行
复制
'([^']+)'

解释

代码语言:javascript
运行
复制
'       # Match a single quote
([^`])+ # Capture anything not a single quote
'       # Match the closing single quote 

基本上,它用单引号捕获所有内容,show_clipping.php?CLIP_id=5是第一个捕获组。

看到它的动作这里。

为了只捕获show_clipping.php?CLIP_id=5,我会做'(.*CLIP_id=[0-9]+)'

代码语言:javascript
运行
复制
'        # Match a single quote 
(.*      # Start capture group, match anyting
CLIP_id= # Match the literal string
[0-9]+)  # Match one of more digit and close capture group
'        # Match the closing single quote
票数 2
EN

Stack Overflow用户

发布于 2012-12-01 11:15:30

答:^(0=1-9*)$回答前:数值的Regex模式

(答覆第6号)

票数 1
EN

Stack Overflow用户

发布于 2012-12-01 11:32:27

那这个呢?

代码语言:javascript
运行
复制
onclick.match(/show_clipping\.php\?CLIP_id=\d+/)
["show_clipping.php?CLIP_id=575"]

(从您问题的标记来看,我假设您使用的是JavaScript)

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

https://stackoverflow.com/questions/13658804

复制
相关文章

相似问题

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