正则表达式替换除特定模式之外的所有内容

2023-12-01

我正在寻找提取:

50%

来自或多或少具有这种格式的字符串:

The 50% is in here somewhere.

我还想摘录一下:

50%50%25%

从这样的字符串:

50% of 50% is 25%

Regex.Match()似乎是明显的竞争者。然而,这涉及检查是否找到任何匹配项(例如match.Success),从数组中的特定索引中提取结果,和/或解决越界索引的风险。

正则表达式替换通常更容易应用。一行就可以完成这项工作,包括返回结果字符串。对于很多语言来说都是如此。

result = Regex.Replace(input, stuffWeDontLike, "")

基本上,我正在寻找一个正则表达式过滤器- 而不是输入模式replace,我想输入模式retrieve.

percentages = Regex.Filter("50% of 50% is 25%", "[0-9]+\%")

我们可以形成一个正则表达式并反转结果,就像它是一个选择一样吗?这将允许使用正则表达式替换。但是,我找不到一种轻松反转正则表达式的方法。

我们如何使用非常短且简单的语法(类似于正则表达式替换)来实现所需的结果(或类似的结果;连接等似乎可以接受)?


您可以使用Regex.Matches并连接每个匹配结果。只需选择一个您最喜欢的即可。

//Sadly, we can't extend the Regex class
public class RegExp
{
    //usage : RegExp.Filter("50% of 50% is 25%", @"[0-9]+\%")
    public static string Filter(string input, string pattern)
    {
        return Regex.Matches(input, pattern).Cast<Match>()
            .Aggregate(string.Empty, (a,m) => a += m.Value);
    }
}

public static class StringExtension
{
    //usage : "50% of 50% is 25%".Filter(@"[0-9]+\%")
    public static string Filter(this string input, string pattern)
    {
        return Regex.Matches(input, pattern).Cast<Match>()
            .Aggregate(string.Empty, (a,m) => a += m.Value);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式替换除特定模式之外的所有内容 的相关文章

随机推荐

  • MVC 5 -> MVC 5.1 迁移。智能感知问题

    我刚刚将我的项目从 MVC 5 更新到 MVC 5 1 主 web config 文件已自动更新 但是web config主 View 和 Areas 文件夹下的 s 未更改 我怀疑这就是为什么我现在失去了对我的动作 控制器和区域的智能感知
  • Spark 如何逐出缓存分区?

    我在独立模式下运行 Spark 2 0 并且我是集群中唯一提交作业的人 假设我有一个包含 100 个分区的 RDD 并且一次总共只能容纳 10 个分区 我们还假设分配的执行内存足够并且不会干扰存储内存 假设我迭代该 RDD 中的数据 rdd
  • 如何使用 ctypes 打包和解包(Structure <-> str)

    这可能是一个愚蠢的问题 但我在文档或任何地方都找不到好的答案 如果我使用struct为了定义二进制结构 该结构有两种对称的序列化和反序列化方法 打包和解包 但似乎ctypes没有一个简单的方法来做到这一点 这是我的解决方案 感觉不对 fro
  • 使用 boto3 连接到 CloudFront 时如何选择 AWS 配置文件

    我正在使用 Boto 3 python 库 并且想要连接到 AWS CloudFront 我需要指定正确的AWS配置文件 AWS凭证 但查看官方文档 我看不到如何指定它 我正在使用代码初始化客户端 client boto3 client c
  • 删除字符串中除第一次出现之外的所有出现的情况

    在Python中 我希望删除所有 来自字符串 第一次出现除外 另外 我希望删除所有 来自字符串 最后一次出现除外 可以是大写 所以我需要它不区分大小写 我最好的方法是什么 删除除第一次出现之外的所有内容从字符串中s 您可以使用以下代码 su
  • MGTwitterEngine for Iphone SDK 错误

    我正在尝试让 MGTwitterEngine 适用于 iPhone SDK 我已按照下面的自述内容进行操作 现在我不断收到以下错误 TCDownload h 没有这样的文件或目录 yajl parse h 没有这样的文件或目录 现在 我已经
  • 如何加密 WinForms 1.1 app.config 中的连接字符串?

    只是在这里寻找第一步基本解决方案 将诚实的人拒之门外 谢谢 麦克风 这可能会对您有所帮助 http msdn microsoft com en us library aa302403 aspx http msdn microsoft com
  • 为什么同样的字符串在python2和python3中print的输出不同?

    在Python2中 python2 c print x08 x04 x87 x18 hexdump C 00000000 08 04 87 18 0a 00000005 在Python3中 python3 c print x08 x04 x
  • 启动带有附件的邮件客户端?

    我目前正在寻找一种方法 用Java 来启动带有定义的接收者 主题和正文以及预定义附件的默认邮件客户端 由于 RFC 的限制 java awt Desktop mail Method 不适用于附件 JDIC 项目已经消亡 而 JMAPI 项目
  • 在 Windows Server 2008 (sp1) 上运行的 Delphi 应用程序是否不会回收内存?

    我们有一个 D2007 应用程序 当在 Windows Server 2008 x64 sp1 上运行时 其内存占用量会稳定增长 它在 Windows Server 2003 x32 或 x64 XP 等上表现正常 它按预期上下波动 我们尝
  • 如何在XCode7上对系统按钮进行自动化UI测试?

    我的故事板只有一个 UI 它有一个导航栏 其中包含一个 UIBarButtonItem 和 System Item Add 它还有另一个信息 UIButton 当用英语进行 UI 测试时 一切正常 没有任何问题 但如果你把语言切换到另一种
  • 具有多个绑定的 SQLAlchemy - 动态选择绑定到查询

    我有 4 个不同的数据库 每个数据库对应我的一位客户 医疗诊所 所有这些数据库都具有完全相同的结构 在我的应用程序中 我有这样的模型Patient Doctor Appointment etc 我们以其中一个为例 class Patient
  • Cypress:测试元素是否不存在

    我希望能够单击一个复选框并测试某个元素是否不再位于 Cypress 的 DOM 中 有人可以建议你怎么做吗 This is the Test when the checkbox is clicked and the element is t
  • 我尝试将 length() 方法原型化为 Object,但破坏了 jQuery – 怎么办?

    我写了以下内容 Object prototype length function var count 1 for var i in this count return count 有用 但是当我执行我的页面时 即使不使用这个函数 Fireb
  • 使用关联数组替换字符串中的多个单词,保持原始大小写不变

    我想将数组与文本字符串进行匹配 其中与数组键匹配的单词将被替换为带有匹配数组值的标题的 span 标记 我可以使用 str ireplace 做到这一点 但随后匹配的单词会失去大小写 glossary array word1 gt span
  • 将参数传递给所有视图

    我想在我的所有 Twig 视图 全部从通用 Twig 布局扩展 上显示用户名 上次连接日期 时间和一些其他信息 如何实现这一目标 而不必将这些参数从每个控制器显式传递到每个视图 我是否必须创建一个 Twig 扩展 或者调用一个控制器 操作来
  • 参数“indexController”不是函数,未定义

    之前已经问过这个问题 但它没有回答我的问题 我对 Angular 还很陌生 目前我只是把东西放在一起 我试图让我的工厂在我的控制器内工作 但是我的控制台中不断出现以下错误 Argument indexController is not a
  • Rails:属于_to,条件/范围抛出语法错误

    我想选择拥有的公司 我尝试了多种组合 新的 Rails 3 旧的学校 所有这些都抛出相同的语法错误unexpected n expecting gt belongs to from class name Company foreign ke
  • xslt文档函数问题

    如果您正在使用文档功能并打开可能不存在的文件 例如
  • 正则表达式替换除特定模式之外的所有内容

    我正在寻找提取 50 来自或多或少具有这种格式的字符串 The 50 is in here somewhere 我还想摘录一下 50 50 25 从这样的字符串 50 of 50 is 25 Regex Match 似乎是明显的竞争者 然而