Java RegEx 后视构造

标签 java regex regex-lookarounds lookbehind

需要一些帮助来为这种情况构建正则表达式:

内容:

<b>IfThisIsPresent:</b>
<span style="font-family:Arial">
<button type='submit'>
<span class="button-gradient">
<span class="button-test">
Look: NeedToExtractThat
</span>

所以: 如果字符串 IfThisIsPresent: 在我的字符串中,我应该提取 Look: 字符串之后的内容。

我开发了以下 RegEx,但它不起作用:

((?<=IfThisIsPresent:)Look:(.*))

我知道 Java 模式类不支持 if then else。所以我使用 lookbehind 检查 IfThisIsPresent 是否存在,然后提取 Look: 之后的内容。

有人可以帮忙吗?

感谢!

最佳答案

这个正则表达式应该适合你:

(?s)(?<=IfThisIsPresent:.{0,1000}Look:).*

它适合我:

NeedToExtractThat </span>

如果您还想摆脱以下标签,例如 </span>那么你可以使用这个正则表达式:

(?s)(?<=IfThisIsPresent:.{0,1000}Look:)[^<]*

哪个匹配:

NeedToExtractThat

在此处查看演示:http://fiddle.re/8ez1h (点击java按钮)

关于Java RegEx 后视构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236626/

相关文章:

java - 按字母顺序对对象进行排序

javascript - 需要 js 中的正则表达式示例

javascript正则表达式字符串之前或之后没有字符

regex - 匹配没有任何 2 个连续重复字符的字符串的正则表达式模式

java - 从 Java 程序启动外部 Java 程序

java 类属性带有 getter 和 setter,这不应该很常见吗

java - 独立运行代码和 war 中的代码时的不同结果

javascript - 向 JSON 对象字符串添加递增数字,使它们唯一

javascript - 如何在 fullPath Vue.js 中正则表达式参数

javascript正则表达式反斜杠问题