1

我有这个字符串:

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

我想把那个 14 放在中间,我怎么能用正则表达式呢?

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

Price: $     
                                        3 in stock

在这种情况下,我只需要 3

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

4

3 回答 3

3

如果文本:“in stock”是固定的,你可以简单地得到 14 :

(\d+) in stock

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

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

(\d+)(?= in stock)
于 2013-09-06T19:18:37.130 回答
0

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

如果你有多次出现,它会变得更复杂一些。

于 2013-09-06T19:51:12.987 回答
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* 
 $ 
于 2013-09-06T19:46:07.197 回答