我想在字符串
中分隔首字母“Wrs”"agendapunt 5.4 (GAIA) asdf <BR> Wrs <BR> medegedeeld"
这是我正在使用的正则表达式:
(?<!<BR>)(\s{2,}[a-z]+\s{2,})(?=<BR>)
首字母“Wrs”必须后跟至少两个空格,然后是html break <BR>
。
此外,首字母“Wrs”必须以至少两个空格开头,且不得以HTML <BR>
标记开头。
不幸的是,在上面的示例中,即使使用前面的<BR>
标记,首字母仍然存在正匹配。
我不明白为什么,因为正面的前瞻似乎确实像我期望的那样工作。
I.E.当我从输入字符串中删除第二个<BR>
标记或其中的一部分时,则找不到匹配项。
此外,我尝试使用积极的lookbehind而不是消极的只是看它会做什么,它也完全按照我的预期工作。 在这种情况下,似乎正面和负面的外观都不符合相同的规则。
知道我做错了吗?
答案 0 :(得分:0)
你正在寻找的正则表达式是
(?<!<BR>\s{2,})(?<=\s{2,})([a-z]+)(?=\s{2,}<BR>)
使用IgnoreCase
选项。
原因是,在不允许<BR>
之后,如果允许,我们必须匹配空格。 Lookbehinds不消耗文本,因此,在后视中,我们需要在第一个消费者之前检查所有前面的字符。
我希望现在更清楚了。
请参阅example。