【问题标题】:Adding up several Search and Replace regular expressions添加几个搜索和替换正则表达式
【发布时间】:2014-06-28 05:52:56
【问题描述】:

我是正则表达式的新手。我想知道有没有办法批量处理许多 '查找和替换' 正则表达式 together 并且有没有特定的 工具 这可以使这项任务变得简单吗?

详情-

我的意思是- 找到一个正则表达式并替换为另一个正则表达式,然后找到另一个正则表达式并将其替换为另一个不同的正则表达式,然后找到第三个并替换为另一个,以此类推.. 等等.. 最多可以搜索和替换 20 个。与手动进行搜索和替换相比,自动化方式最多可进行 20 次。

【问题讨论】:

  • 请提供具体例子
  • @sshashank124 - 示例可以是任意两组正则表达式。喜欢 find- (something.com/somedir1548) 并替换为 - (index45872.html)。然后查找 (something.com/somedir8493) 并替换为 - (k2548/index45872.html),像这样使用许多不同的搜索和替换对。
  • 我们是否可以将许多不同的正则表达式链接(查找)到一个中(可能通过使用分隔符或其他方式)。
  • 我在“AdrianHHH”答案中的this 得到了一件与我有关的事情。稍后会尝试。

标签: regex batch-processing


【解决方案1】:

链式替换

您可以使用任何可以访问正则表达式引擎的语言链接替换。

  • 如果您刚开始并想编写一些脚本,Python 和 PHP 是不错的选择
  • 任何 .NET 语言、Java、Ruby、Perl... 应有尽有。

在 Java 中

在 cmets 中,您提到您使用 Java。要链接替换,您可以执行以下操作:

String result1 = subjectString.replaceAll(myregex, myreplacement);
String result2 = result1.replaceAll(myregex2, myreplacement2);
String result3 = result2.replaceAll(myregex3, myreplacement3);

图形用户界面工具

我可以想到三个允许正则表达式链接的 GUI 工具:

  • PowerGrep(商业版,作者 Jan Goyvaerts,著名 RegexBuddy 的作者)
  • TextDistil(目前免费,.NET 正则表达式风格)
  • TextPipe Pro(商业版)

此外,正则表达式链接可用于焦点狭窄的应用程序,例如:

  • Directory Opus(强大的 Windows 文件管理器)
  • 更好的 Finder 重命名和 Name Mangler(OSX 的文件重命名器)

【讨论】:

  • 我只想要正则表达式的表达方式。不要集中注意力或回答“工具”这个词。 (而且正则表达式不是编程吗?)
  • 我对Java有些了解
  • 太棒了!在答案中添加了 Java 部分。 :)
  • replaceAll(..) 的第二个参数 'myreplacement' 也被视为正则表达式还是一个简单的字符串?
  • 这是一个“替换字符串”:它可以是文字字符串,例如"dog",也可以包含捕获组捕获的文本。例如,$1 将引用由(the first set of parentheses) 捕获的文本,这使您可以构建精细匹配。然后你可以构建一个更复杂的替换函数(“lambda”),在其中你可以做任何你喜欢的事情——例如检查一个数据库。有关简单替换 lambda 的示例,请参阅this code
【解决方案2】:

在 PHP 中,您可以使用 preg_replace() 执行此操作。如果patternreplacement 参数都是数组,则pattern 参数中的每个正则表达式都将替换为replacement 参数的对应元素。

【讨论】:

  • 我已经安装了 JDK 并且可以在 java 中做一些事情
猜你喜欢
  • 2013-06-14
  • 1970-01-01
  • 2018-05-25
  • 2010-11-25
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多