首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中排除超过2 "==“的模式的正则表达式

在Java中排除超过2 "==“的模式的正则表达式
EN

Stack Overflow用户
提问于 2013-09-25 17:43:45
回答 1查看 136关注 0票数 2

我需要提取一个或多个等于(即==、====等)和后续文本之间的任何文本,直到它搜索下一个或多个等于并存储在数组列表中为止。

例如:

代码语言:javascript
复制
==Notes and references== {{Refli=st|35e=m}}=====Bibliography=====Text starts

预期产出:

代码语言:javascript
复制
[==Notes and references== {{Refli=st|35e=m}}, =====Bibliography=====Text starts]

我有regex语法:

代码语言:javascript
复制
"==+([^==+]*)==+([^==+]*)"; 

在遇到single =之前,我将得到输出:

代码语言:javascript
复制
[==Notes and references== {{Refli, =====Bibliography=====Text starts]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-25 17:47:28

[^==+]*匹配除=+以外的所有字符。这不是你想要的。

在这里,使用以下内容可能更容易:

代码语言:javascript
复制
"==+(.*?)==+(.*?)(?===|$)";

以便允许在多个=之间使用单个=符号。

(?===|$)是一个正前瞻((?= ... )),确保前面有两个连续的=标志,或者字符串的末尾。

或者,如果您想要在中间的部分中特别否定==+,您可以使用负面的外观:

代码语言:javascript
复制
"==+((?:(?!==+).)*)==+((?:(?!==+).)*)";

这个语法((?:(?!==+).)*)将检查每个字符,并确保它不是== (或更多)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19011716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档