在$号正则表达式后提取数字

时间:2019-06-27 20:23:01

标签: regex excel

我有一个excel函数,可从单元格中提取数字,但我想更改模式以在$符号后提取数字。

数字范围为1-100000。它也可以有小数点(例如1.1000)。数字永远不会是负数。数字将始终在$符号之后。

例如<div class="palette"> <div class="colorOuter1"> <div class="colorInner1"></div> </div> <div class="colorOuter2"> <div class="colorInner2"></div> </div> <div class="colorOuter3"> <div class="colorInner3"></div> </div> <div class="colorOuter4"> <div class="colorInner4"></div> </div> <div class="colorOuter5"> <div class="colorInner5"></div> </div> <div class="centerOverlay"> <div class="north"></div> <div class="northeast"></div> </div> </div>

我需要得到Text text $50.35

我需要编写.pattern部分的帮助。我尝试并不断失败。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我的猜测是,此表达式或对此的稍微修改后的版本可能在这里起作用:

\$(10{5})$|\$([1-9]\d{1,4}(\.\d+)?)$|\$([1-9](\.\d+)?)$

如果您感兴趣,请在此demo中对表达式进行说明。

我的假设是:

  • 我们想通过$100000并通过$100000.0

  • 字符串将以所需的数字结尾。

答案 1 :(得分:0)

您可以匹配美元符号,并在组中捕获数字。

\$([1-9][0-9]{0,4}(?:\.\d+)?|100000(?:\.0+)?)(?!\S)

说明

  • \$匹配美元符号
  • (捕获组
    • [1-9][0-9]{0,4}匹配1-99999
    • (?:\.\d+)?可以选择匹配点和1个以上的数字
    • |
    • 100000(?:\.0+)?匹配100000,还可以匹配一个点和1+乘以0
  • )关闭捕获组1
  • (?!\S)断言右边的内容不是非空格字符

Regex demo