我想从使用regex的文本中删除一个以特殊单词开头的段落。假设我们有lorem ipsum文本,我们希望删除第一段( http://en.lipsum.com/feed/html )
我正在使用python,我试过:
t = r"^Lorem ipsum.*\n\n"
text.replace(t,"")课文没发生什么事。我的问题不是关于python,而是关于与以特定单词开头的段落匹配的regex表达式。
发布于 2014-02-19 10:23:34
这在很大程度上取决于您对“段落”的定义--这是一个由空行分隔的行序列吗?大多数regexp处理工具都是面向行的,它们逐行处理文本,因此它们可能不像您所期望的那样工作。这也适用于Python库,但它提供了解决这一问题的方法--在您的例子中,类似于re的工作应该由re.sub('^Lorem ipsum.*?\n\n', '', text, flags=(re.S | re.M))来完成(注意,text.replace根本不适用于regexp )。
如果文本足够短,这是可行的,但对于长文本,您应该使用一些不同的方法--我自己使用awk,其他人可能建议使用perl,python也可以使用;简单的regexp工具,比如grep或sed,可能不在这里。
发布于 2014-02-19 10:17:37
如果你的段落中有行距,你的正则表达式就不能工作(它只对一行段落起作用)。尝试以下正则表达式:^Lorem ipsum[\s\S]*\n\n。请参阅http://regex101.com/r/fF9uZ6
https://stackoverflow.com/questions/21877040
复制相似问题