#.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 (щелкните контекстную вкладку внизу, чтобы увидеть результат замены).