正则表达式匹配数值

时间:2012-12-01 11:06:55

标签: javascript regex

我正在尝试匹配模式:

show_clipping.php?CLIP_id=*

从:

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>

其中

*

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

结果必须返回整个事物(show_clipping.php?CLIP_id=575

我尝试了什么:

show_clipping.php\?CLIP_id=([1-9]|[1-9][0-9]|[1-9][0-9][0-9])

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

show_clipping.php?CLIP_id=5
  1. 如何正确匹配数字部分?
  2. 另一个问题是值575可以包含任何数值,我的正则表达式在3位数后不起作用,我如何使其无限数量工作

5 个答案:

答案 0 :(得分:2)

您没有指定您使用的语言,因此这里只是regex

'([^']+)'

解释

'       # Match a single quote
([^`])+ # Capture anything not a single quote
'       # Match the closing single quote 

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

请参阅操作here.

要仅抓取show_clipping.php?CLIP_id=5,我会'(.*CLIP_id=[0-9]+)'

'        # 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

答案 1 :(得分:1)

答案: ^(0 | [1-9] [0-9] *)$ 之前回答: Regex pattern for numeric values

(答案编号6)

答案 2 :(得分:1)

这个怎么样?

onclick.match(/show_clipping\.php\?CLIP_id=\d+/)
["show_clipping.php?CLIP_id=575"]

(从你的问题的标签我假设你正在使用JavaScript)

答案 3 :(得分:0)

show_clipping.php\?CLIP_id=(\d+)

\d匹配一个数字,+表示其中一个或多个。

答案 4 :(得分:0)

怎么样:

/(show_clipping.php\?CLIP_id=[1-9]\d*)/