Как заменить с помощью сопоставления регулярных выражений в UiPath

#.net #regex #uipath #uipath-studio #uipath-activity

#.net #регулярное выражение #uipath #uipath-studio #uipath-активность

Вопрос:

У меня есть регулярное выражение для фильтрации данных

введите описание изображения здесь

#Соответствует результату

  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. regex , но это не работает. есть идеи? Спасибо.

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

Комментарии:

1. Regex.Replace(item, @"(.*)s$d[d.]*([^rn]*)(?:r?n(?!d )(. ))?" , "$1$2$3") — вы забыли использовать шаблон замены и использовать дословный строковый литерал.

2. Однако вы говорите, что хотите удалить все суммы в долларах? Нравится Regex.Replace(item, @"s*[ -]?$d*.?d ", "") ?

3. Да, просто сопоставление суммы в долларах также может сработать -?$d{1,3}(?:,d{3})*.d{2}(?!S)

4. Как насчет того, если я хочу удалить только доллары в последней строке, поэтому, если на входе si предоплаченные проценты ($ 5,99 в день с 10/02/2020 по 10/01/2020) — $ 5,99, на выходе — предоплаченные проценты ($ 5,99 в день с 10/02/2020 по 10/01/2020)

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

Ответ №1:

Чтобы удалить сумму в долларах в конце строки, вы можете использовать

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

Убедитесь, что вы используете дословный строковый литерал, @"..." , в коде C # (он не нужен в VB.NET хотя), чтобы иметь возможность использовать single в качестве escape-символа регулярного выражения.

Шаблон означает

  • s* — 0 пробелов
  • [ -]? — необязательный - или
  • $ $ символ
  • d* — 0 или более цифр
  • .? — необязательный .
  • d — 1 цифры
  • s* — 0 или более пробелов
  • $ — конец строки.

Смотрите онлайн демонстрацию регулярных выражений RegexStorm (щелкните контекстную вкладку внизу, чтобы увидеть результат замены).