Java Groovy提取两个字符串



我有以下正则表达式来查找名为EXTRACT的单词,但是我需要找到另一个名为REPLICAT的作品。 所以,复制 |提取。如何在一个表达式中执行此操作。

def matcher =  rawTerminalText =~ /(?m)(EXTRACT +RUNNING +)(.*?w)( +)(d{2}):(d{2}):(d{2})( +)(.*?w)( +)(.*?$)/

我尝试了以下内容,但它不起作用。

def matcher =  rawTerminalText =~ /(?m)((^| )(REPLICAT|EXTRACT)+$ +RUNNING +)(.*?w)( +)(d{2}):(d{2}):(d{2})( +)(.*?w)( +)(.*?$)/

如果您只想了解字符串中是否存在的给定单词? 那么在下面使用正则表达式?

def rawText=" The Word which i am looking for is, REPLICAT and EXTRACT"
def Word= /^.*b(REPLICAT|EXTRACT)b.*$/;
def findWord= (rawText =~ /$Word/);
log.info  findWord.count;
    Output:
    count will return 1: found
    count will return 0:not found

我建议使用正则表达式测试站点,该网站对正则表达式进行了解释,并允许使用示例文本进行测试。

我个人喜欢使用这个:https://regex101.com/因为它对书面正则表达式有很好的解释。

-------编辑-------

我认为你有一个不应该存在的空格字符。而不是(复制 |提取 +运行 +( 使用(复制|提取 +运行 +(

-----结束编辑-----

最新更新