考慮項目集合。每個項目可能沒有,分配一個或多個標籤。標記名稱可能由任何有效的unicode字符組成,除了空格(空格,換行符等)。每個項目的tag
屬性是空格分隔的標籤列表,例如, tag1 tag2 tag3
。PHP正則表達式:匹配包含複雜字符集的匹配的若干包含/排除規則
我目前正在研究一個PHP函數,它爲包含特定標記集的人過濾所有項目,另一方面不允許包含其他人。
目前,我產生一個正則表達式像
/^(?=.*\bfoo\b)(?=.*\bbar\b)(?!.*\bbaz\b).*$/
了搜索查詢。該表達式匹配包含foo
和bar
但而不是baz
的所有tag
屬性。這是完美的,而標籤以單詞字符開始和結束,但以其他方式停止工作(例如,以標記開始或以點號或散列符號結尾的標記)作爲字邊界錨點僅適用於單詞字符。
你知道如何修改.foo#
等標籤的正則表達式嗎?
該解決方案應該支持PHP 5.5+。
如若'包含.foo#''匹配... FOO#%'或'abc.foo#DEF '或'(SPACES).foo#'? – Toto