如何在单个文本主体上按顺序执行一系列正则表达式(包含替换和提取)?

How can a sequence of regular expressions (with replacements and extractions) be executed in order on a single body of text?

在正文中 运行 一系列正则表达式的好方法是什么? 用于查找和替换模式的正则表达式

我找了好几天都没有成功。只要 Google 朝正确的方向搜索,我就会很满意。

我会考虑使用一个简单的脚本来做这样的事情。

如果您使用 windows .bat 文件,如果您使用 Linux(或可以访问类似 Cygwin 的东西)bash (.sh)

选择脚本语言后,查找和替换功能应该可以搜索

鉴于您的要求,我会用 sed 来处理它,类似于:

sed -e 's/\n\w/#*4#/g' -e 's/\n/[enter]/g' -e 's/[#][*]4[#]/START/g'

作为连续应用正则表达式的快速示例,请考虑:

echo "this is absolutely absent minded bs" | \
sed -e 's/ab/#*4#/g' -e 's/b/[enter]/g' -e 's/[#][*]4[#]/START/g'

输出:

this is STARTsolutely STARTsent minded [enter]s

它将以相同的方式匹配 newlineword 的正则表达式。

自从我问了这个问题之后发生了很多变化,对于那些正在寻找答案的人来说,解决方案可以在 Ruby、Python、Javascript、Perl 中完成,以及几乎所有支持 Regex 的语言。我仍然不知道有适合它的在线或 GUI 程序。

不久前,我在 Python 中为它创建了一个简单的 GUI。下面是安装方法。

  1. 安装Python:2.7 (https://www.python.org/downloads/)

  2. 安装 Regex Python 模块: 如果在 Mac 上,请打开终端应用程序。如果在 Windows 上,打开命令提示符。然后 输入 pip install regex 并让它安装

  3. 下载此 Python 文件: here

  4. 运行 文件: 使用 Python Launcher 2.7 打开文件

该程序应该是不言自明的,但如果有人有任何问题,我创建了一个帮助文档here



代码内替代方法的一个示例是创建一个 Python 文件 (TextFile.py) 并在其中包含以下代码。

import regex as re

#input your file path
location_ = **YourFilePath**
f = open(location_,'r+')
text_ = f.read()
f.close() 

# input your regular expressions
text_ = re.sub(r'Your_Regex_Find' ,'Your_Regex_Replace' ,text_)
text_ = re.sub(r'Your_Regex_Find2','Your_Regex_Replace2',text_)

print text_