Regex - to find whole numbers only - problem

不羁岁月 提交于 2020-01-25 00:19:24

问题


I am aware that there are quite a few similar threads on this and I've tried the solutions but I can't seem to solve my problems despite reading them - please pardon me.

  • Regex - Find numbers that do not contain two decimal places
  • Regex for whole numbers only and not a blank string
  • REGEX for whole, positive number
  • What's the regular expression for positive whole numbers only? (zero is not allowed)
  • Regex that accepts only numbers (0-9) and NO characters
  • Regex to match only numbers in currency

Could any one tell me what's wrong with these two codes below such that it isn't able to fulfil my criteria of selecting only whole numbers. (refer to the two images below)

Option 1 - how to I prevent $2000.5 from being selected since it isn't a whole number?

\$\d+[^.|x](?![0-9])

Option 2 - This code doesn't select $2000.5 but it isn't selecting $100 (which is a whole number).

\$\d+$

Data

5x Item C $2.5x5, $2.50x1
1 Book $2.55
1x Table $2.59
2x Item A $2000.5x2, 10x Item B $0.5x10
1x Test $2.513, 5x Pear $100x5
$1.430
$1.50 
$1.55
10x Tee $0.5x10
50x SSS $6.5x50
$2.5, $50

Thank you very much.


回答1:


I suggest using the following pattern:

\$\d+(?![0-9.])

This matches $, followed by a series of one or more digits. The negative lookahead at the end (?![0-9.]) ensures that we don't match a number having a decimal component.

Demo



来源:https://stackoverflow.com/questions/58892703/regex-to-find-whole-numbers-only-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!