java匹配两个字符,正则表达式匹配两个字符串之间的所有字符

示例:“这只是一个简单的句子”。

我想匹配“这是”和“句子”之间的每个字符。 换行符应忽略。 我找不到正确的语法。

#1楼

使用这个: (?<=beginningstringname)(.*\\n?)(?=endstringname)

#2楼

需要惰性量词

重新提出这个问题,因为接受的答案中的正则表达式对我而言似乎不太正确。 为什么? 因为

(?<=This is)(.*)(?=sentence)

会匹配my first sentence. This is my second my first sentence. This is my second This is my first sentence. This is my second sentence. This is my first sentence. This is my second sentence.

您需要在两种环视之间使用惰性的量词。 添加? 使星星懒。

这符合您的要求:

(?<=This is).*?(?=sentence)

参见演示 。 我删除了捕获组,这不是必需的。

DOTALL模式以匹配整个换行符

请注意,在演示中,设置了“点匹配换行模式”(aka)点全名(请参阅如何以各种语言打开DOTALL )。 在许多正则表达式中,您可以使用在线修饰符(?s) ,将表达式转换为:

(?s)(?<=This is).*?(?=sentence)

参考

#3楼

这个:

This is (.*?) sentence

在javascript中工作。

#4楼

您可以简单地使用: \\This is .*? \\sentence \\This is .*? \\sentence

#5楼

如果有人在詹金斯语境中寻找这样的例子。 它解析build.log,如果找到匹配项,则使用匹配项使构建失败。

import java.util.regex.Matcher;

import java.util.regex.Pattern;

node{

stage("parse"){

def file = readFile 'build.log'

def regex = ~"(?s)(firstStringToUse(.*)secondStringToUse)"

Matcher match = regex.matcher(file)

match.find() {

capturedText = match.group(1)

error(capturedText)

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值