php - 是否可以反转正则表达式?
问题描述
这可能不是一项任务,而是一个问题,现在我将解释我想问的问题。
所以,背景故事,有以下输入数据:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
[ABCDEFGHIJKLMNO] incididunt ut labore et dolore magna aliqua. Ut enim ad minimus veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure http://domains.ua/ dolor in reprehenderit in voluptate velit esse cillum
dolore eu: fugiat: nulla pariatur. Excepteur sint occaecat: cupidatat [non] proident :,
sunt in culpa qui officia deserunt mollit anim id est labor labor. https://foo.co.uk/ *end.
任务是查找方括号中的所有匹配项,在这一行中:这是:[ABCDEFGHIJKLMNO]
和[non]
,然后查找所有http/https
以斜杠 () 开头和结尾的链接,/
紧跟一个空格。(参考文献的正确性并不重要)
一般来说,要找到所有这些事件很容易,这里是正则表达式(demo):
\[.*?\]|https?://[\w\.]+/\h
是否可以反转这个正则表达式以便找到除了任务中指定的条件之外的所有内容?(不要在方括号和链接中突出显示)
解决方案
非常感谢@WiktorStribiżew的帮助,我想,我通过以下方式解决了这个问题:
echo join('', preg_split('~\[.*?]|https?://[\w.]+/\h~', $string));
推荐阅读
- ios - 如何在 iOS 中获得不会过期的缓存?
- javascript - symfony 3.4.14 collectionType 编辑删除问题
- html - 带有 X/Y 坐标的大画布
- javascript - 如何从javascript中的文本框中输出字符串?
- rest - 使用 SOAP 的系统中 REST 的传统对应物是什么
- javascript - JavaScript 和 PHP 代码不起作用
- ios - 链接器命令失败,退出代码为 1 Xcode 10 中的错误
- rollupjs - 使用 rollup 将导入的 javascript 打包到 svelte 组件中
- java - 什么是线程上下文中的缓存以及何时在 Java 中使用 volatile 关键字?
- sql - 在超过 100 万行的表中什么更有效?交叉连接还是子查询?