Я хочу извлечь:
50%
Из строки, которая будет иметь более или менее этот формат:
The 50% is in here somewhere.
Я также хотел бы извлечь:
50%50%25%
Из строки, подобной этой:
50% of 50% is 25%
Regex.Match()
кажется очевидным соперником. Однако это включает проверку наличия совпадений (например, match.Success
), извлечение результатов из определенного индекса в массиве и/или риск обращения к индексу вне границ.
Замена Regex обычно проще применять. Одна строка выполняет задание, включая возврат результирующей строки. Это верно для многих языков.
result = Regex.Replace(input, stuffWeDontLike, "")
В принципе, я ищу фильтр регулярных выражений - вместо ввода заменяемого шаблона, я хочу ввести шаблон для извлечения.
percentages = Regex.Filter("50% of 50% is 25%", "[0-9]+\%")
Можно ли сформировать регулярное выражение и инвертировать результат, как если бы это был выбор? Это позволило бы использовать регулярное выражение. Однако я не мог найти способ легко инвертировать регулярное выражение.
Как мы можем достичь желаемого результата (или похожего, соединение или так кажется приемлемым) с очень коротким и простым синтаксисом, похожим на regex replace?