简单的正则表达式建议

时间:2013-09-06 19:12:49

标签: regex

我有这个字符串:

"Price: $       $110.49Foil Sale!14 in stock"

我想在中间得到14,我怎么能用正则表达式来做?

编辑: 有时字符串是这样的:

Price: $     
                                        3 in stock
在这种情况下,我只需要3

我试过这个:[/[^$][0-9]\z{1,3}/]但它没有用,我对正则表达式一点都不好

3 个答案:

答案 0 :(得分:3)

如果文本:“库存”已修复,您只需使用以下内容获取14:

(\d+) in stock

在第一个捕获组中,您将找到数字14

如果您只想匹配数字14,可以使用前瞻表达式:

(\d+)(?= in stock)

答案 1 :(得分:0)

你可能只对“xx in stock”做任何事情 你可能需要知道它是什么。

 #  ^(.*?)(\d*)\s*in\s+stock\s*$

 ^ 
 (                            # (1 start)
      # what is in stock 
      .*? 
 )                            # (1 end)
 (                            # (2 start)
      # how many 
      \d* 
 )                            # (2 end)
 \s* in \s+ stock \s* 
 $ 

答案 2 :(得分:0)

正则表达式'^。(14)。 $'(不带引号 - 替换为'$ 1')是最简单的方法,只要你的中只有一个出现14整个字符串。

如果您有多次出现,则会更复杂一些。