我想我现在几乎让我的Regex失效了(感谢这个社区)。我有以下正则表达式:
== [A-Za-z\\s]+ ==
我正在浏览维基百科的文字,所以这就是我在检索后分割文本的方法。一个例子:
== References == or == External Links ==
但有时候我会得到以下内容:
=== Some thing === <-- This is not picked up. Great!
==== Some other Thing ==== <-- "== Some other Thing ==" is picked up. Bad!
我尝试将其更改为以下内容,但没有令人满意的结果:
/^== [A-Za-z\\s]+ ==$/
(?<![\w\d])== [A-Za-z\\s]+ ==(?![\w\d])
/\b== [A-Za-z\\s]+ ==\b/
我的正则表达式有什么帮助吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
这对你有用吗?
[=]+ [A-Za-z\\s]+ [=]+
我知道它不会使双方匹配,但它现在应该接收所有实例。
如果您需要限制,还可以将[=]+
更改为[=]{1,3}
。
答案 2 :(得分:1)
你可以用
来实现它(?<!=)==\s*([^=]+)\s*==(?!=)
请参阅a demo here 这使用负面外观和否定字符类。
<小时/> 只是为了培训目的并为您提供替代方案,您也可以使用子程序:
(?(DEFINE)
(?<left>(?<!=)(?==))
(?<right>(?<==)(?!=))
(?<separator>(?&left)==(?&right))
)
(?&separator)
(.+?)
(?&separator)
同时查看this on regex101.com的演示。