用于查找数字和字符的正则表达式,但在开始时有$ in string

时间:2017-11-21 08:15:30

标签: php regex

我写了一个正则表达式:

\s*\$\d+\,?\.?\d*\,?\d*[mkb]?\s*

此正则表达式提取$100$1k$1m$1b等字符串。

它工作正常,但现在我需要它返回$1mm如果字符串中有$1mm,而不仅仅$1m$1mm的一部分。

1 个答案:

答案 0 :(得分:1)

您可以使用

'~\s*\$\d[,.\d]*(?:mm|MM|[mkbMKB]?)\b\s*~'

请参阅regex demo

模式详情

  • \s* - 0+ whitespaces
  • \$ - $符号
  • \d - 1位
  • [,.\d]* - 0位数,,.字符
  • (?:mm|MM|[mkbMKB]?) - mmMM或不区分大小写kmb或空字符串
  • \b - 字边界
  • \s* - 0+空格。