匹配第一个和最后一个单词之间的文字



我想创建一个与多行匹配的正则表达式。此正则表达式应从与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|=).+).+$", "");

最新更新