いつものように、私は世界で最悪の正規表現作成者です。でも今回は本当に頑張った。
したがって、私の目標は、検索関連のものを処理する 1 つの正規表現を作成することです。検索クエリは次のようになります。
- スタックオーバーフロー
- "スタックオーバーフロー"
- タイトル="スタック オーバーフロー"
- type:image title=スタック オーバーフロー
- スタックオーバーフロー タイプ:画像
- ステータス:閉じたタイプ:画像のタイトル:スタック オーバーフロー
しかし、それはそれらを別々に検出できるはずです..そして、直接一致する引用を検出できるはずです..タイトルのみ、その背後に検索クエリが必要ですが、他の条件はどのような順序でもかまいません.
そして今、私はとても立ち往生しています..私はこの正規表現を行うことができました。status:closed type:image title:stack overflowでのみ機能します。物事の間のドット()
はそれを機能させます。| に置き換えると、一致する最初の部分が得られます。しかし、考えられるすべてのクエリ形式でこれを機能させることは、私には不可能です。
/(?:(?:status[:](closed|open)).(?:type[:](image|video)).(?:(?:title|author|actor|movie)[:](.+)))/i
ここにツールがあります。私はこれをすべてやろうとしました: http://regexr.com/39an1私の落書きもそこにあります。
これは、検索エンジン タイプのものです。ですから、この試合の結果が PHP 内で使いやすいものになることを願っています。また、誰かがこれから非常に恩恵を受ける可能性があると思います。解決策があるでしょう。
誰かが私をすぐに指摘できれば、少なくともドット対|。主なものの間()
。|のように感じます。= または、しかし、私はちょっと and-or のようなものが欲しいです。