我有这个字符串:
"Price: $ $110.49Foil Sale!14 in stock"
我想把那个 14 放在中间,我怎么能用正则表达式呢?
编辑:有时字符串是这样的:
Price: $
3 in stock
在这种情况下,我只需要 3
我试过这个:[/[^$][0-9]\z{1,3}/]
但它没有用,我对正则表达式一点也不擅长
我有这个字符串:
"Price: $ $110.49Foil Sale!14 in stock"
我想把那个 14 放在中间,我怎么能用正则表达式呢?
编辑:有时字符串是这样的:
Price: $
3 in stock
在这种情况下,我只需要 3
我试过这个:[/[^$][0-9]\z{1,3}/]
但它没有用,我对正则表达式一点也不擅长
如果文本:“in stock”是固定的,你可以简单地得到 14 :
(\d+) in stock
在第一个捕获组中,您会找到数字 14
如果您只想匹配 14 号,可以使用前瞻表达式:
(\d+)(?= in stock)
正则表达式 '^. (14)。$' (不带引号 - 替换为 '$1')是最简单的方法,只要在整个字符串中只出现 14 次。
如果你有多次出现,它会变得更复杂一些。
您可能无法仅使用“ 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*
$