我需要提取一个或多个等于(即==、====等)和后续文本之间的任何文本,直到它搜索下一个或多个等于并存储在数组列表中为止。
例如:
==Notes and references== {{Refli=st|35e=m}}=====Bibliography=====Text starts预期产出:
[==Notes and references== {{Refli=st|35e=m}}, =====Bibliography=====Text starts]我有regex语法:
"==+([^==+]*)==+([^==+]*)"; 在遇到single =之前,我将得到输出:
[==Notes and references== {{Refli, =====Bibliography=====Text starts]发布于 2013-09-25 17:47:28
[^==+]*匹配除=和+以外的所有字符。这不是你想要的。
在这里,使用以下内容可能更容易:
"==+(.*?)==+(.*?)(?===|$)";以便允许在多个=之间使用单个=符号。
(?===|$)是一个正前瞻((?= ... )),确保前面有两个连续的=标志,或者字符串的末尾。
或者,如果您想要在中间的部分中特别否定==+,您可以使用负面的外观:
"==+((?:(?!==+).)*)==+((?:(?!==+).)*)";这个语法((?:(?!==+).)*)将检查每个字符,并确保它不是== (或更多)。
https://stackoverflow.com/questions/19011716
复制相似问题