【问题标题】:How to replace using regex match in UIPath如何在 UIPath 中使用正则表达式匹配替换
【发布时间】:2020-09-23 13:31:03
【问题描述】:

我有一个正则表达式来过滤数据

#匹配结果

 Homeowner's Insurance Premium ( 12 mo.) toAmerican Family  $893.00
 Insura
 Mortgage Insurance Premium (     mo.)
 Prepaid Interest ($5.99 per day from 10/02/2020 to 10/01/2020) -$5.99

使用上述 Matches 活动中的每个循环,我想删除所有美元,例如 $893.00、$5.99 等 使用 ff。正则表达式,但它不起作用。任何想法 ?谢谢。

(.*)\s\$\d[\d.]*([^\r\n]*)(?:\r?\n(?!\d+ )(.+))?
System.Text.RegularExpressions.Regex.Replace(item,"(.*)\s\$\d[\d.]*([^\r\n]*)(?:\r?\n(?!\d+ )(.+))?" , "")

【问题讨论】:

  • Regex.Replace(item, @"(.*)\s\$\d[\d.]*([^\r\n]*)(?:\r?\n(?!\d+ )(.+))?" , "$1$2$3") - 您忘记使用替换模式并使用逐字字符串文字。
  • 但是,您说要删除所有美元金额?喜欢Regex.Replace(item, @"\s*[+-]?\$\d*\.?\d+", "")?
  • 是的,只要匹配美元金额也可以-?\$\d{1,3}(?:,\d{3})*\.\d{2}(?!\S)
  • 如果我只想删除最后一行的美元,那么如果输入 si Prepaid Interest ($5.99 per day from 10/02/2020 to 10/01/2020) - $5.99 输出是预付利息(从 2020 年 10 月 2 日到 2020 年 1 月 10 日,每天 5.99 美元)
  • Regex.Replace(item, @"\s*[+-]?\$\d*\.?\d+\s*$", "")?

标签: .net regex uipath uipath-studio uipath-activity


【解决方案1】:

要删除字符串末尾的美元金额,您可以使用

Regex.Replace(item, @"\s*[+-]?\$\d*\.?\d+\s*$", "")

确保您在 C# 代码中使用逐字字符串文字 @"..."(但在 VB.NET 中不需要),以便能够使用单个 \ 作为正则表达式转义字符。

图案的意思

  • \s* - 0+ 个空格
  • [+-]? - 可选的 - 或 +
  • \$ - 一个 $ 字符
  • \d* - 0 位或更多位
  • \.? - 一个可选的.
  • \d+ - 1 位以上
  • \s* - 0 个或多个空格
  • $ - 字符串结束。

查看RegexStorm regex demo online(点击底部的上下文标签查看替换结果)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多