我想创建一个与多行匹配的正则表达式。此正则表达式应从与Email
开始的行匹配开始,然后以与=
开头匹配一条线,并且应该在比赛中包含所有行。示例:
输入:
scrambled text asdasdad
qwert asd
Email: johndoe@john.com
John is an emplyer
john's number is +146546****
============================
gabrish
匹配:
Email: johndoe@john.com
John is an emplyer
john's number is +146546****
============================
有几种方法可以为此任务设计表达式,我的猜测是,也许在这里我们感兴趣的表达式,
Email:[sS]*?=.+s*
使用m
(多行(标志:
演示1
如果不需要上次=
之后的空格,我们可以将其删除并将其简化为:Email:[sS]*?=.+
。
另一种方法是使用s
(单行(标志,我们将从类似的表达式开始:
Email.*?=+
演示2
尝试以下:
content.replaceAll("^(?!(EMAIL|=).+).+$", "");