和往常一样,我是世界上最糟糕的正则表达式制造者。但这次我真的试过了。
所以我的目标是制作一个处理搜索相关内容的正则表达式。搜索查询可能是这样的:
- 堆栈溢出
- “堆栈溢出”
- 标题="堆栈溢出"
- 类型:图像标题=堆栈溢出
- 堆栈溢出类型:图像
- 状态:关闭类型:图像标题:堆栈溢出
但它应该能够单独检测它们。它应该能够检测直接匹配的引用。只有标题,必须在其后面有搜索查询,但其他条件可以是任何顺序。
现在我被困住了..我设法做到了这个正则表达式。它仅适用于状态:关闭类型:图像标题:堆栈溢出。事物之间的点()
使它起作用。如果我用 | 替换它,那么我得到第一部分匹配。但是让这个工作,所有可能的查询格式对我来说是不可能的。
/(?:(?:status[:](closed|open)).(?:type[:](image|video)).(?:(?:title|author|actor|movie)[:](.+)))/i
这是工具,我试着做这一切:http ://regexr.com/39an1我的涂鸦也在里面。
这是针对搜索引擎类型的东西。所以我希望匹配的结果,在 PHP 内部很容易使用。另外,我认为有人可以从中受益匪浅,它会有一个解决方案。
如果有人可以立即将我指向正确的位置,至少带有点与 | 在主要()
事物之间。感觉就像 | = 或,但我想要有点像 and-or 的东西。