我需要制作一个正则表达式以匹配一些液体量,如:
water in 17oz container
water in container 17oz
你如何制作正则表达式以匹配这些?
我可以做/[0-9]{1,}oz/
,但这也会匹配90ozonelayers,而不是它会发生,但我希望它是万无一失的。
如果它位于字符串的末尾,那么/[0-9]{1,}oz /
将无法匹配它。
答案 0 :(得分:1)
您可以使用\b
来匹配字边界:
/\b[0-9]+oz\b/
答案 1 :(得分:0)
[0-9]{1,}oz(\s|\b)
这与您的两个字符串匹配,但与12ozsdsds
之类的内容不匹配。
修改强>
注意到所有解决方案都存在轻微缺陷,似乎是所有事情的组合,最好的可能是(来自 tenub 的被盗位):
/(?<=\s|^)[0-9]{1,}oz(?=\s|$)/
(使用/g
匹配所有匹配项)。
17oz
- 匹配
abc 17oz def
- 匹配
17ozz
- 不匹配
abc17oz
- 不匹配
答案 2 :(得分:0)
简单。只需使用:
/[0-9]{1,}oz(?= |$)/
答案 3 :(得分:0)
在弦乐的末尾匹配34盎司,34盎司和6盎司,但不是56ozone层。
([0-9]{0,})(\s{0,})(oz{1})(\s{0,}|$)