我現在擁有的:
preg_match('/title:(. ?)(?=\s|$)/',$str, $result);// 給我以標題開頭的單詞:并以空格結尾。preg_match('/body:(. ?)(?=\s|$)/',$str, $result);// 給我單詞以 body: 開頭并以空格結尾。preg_match_all('/#([\p{Pc}\p{N}\p{L}\p{Mn}] )/u', $str, $result);// 給我一個以#開頭的單詞陣列并將它們放入一個陣列中。
如何排除上述內容并獲得一個運算式中不匹配的其余部分?
我想接受用戶輸入,并且:
- 洗掉以空格開頭
title:和結尾的字串(我希望只有一個)。 - 洗掉以空格開頭
body:和結尾的字串(我希望只有一個)。 - 洗掉以空格開頭
#和結尾的字串(我希望有多個)。 - 得到剩下的任何單詞。
前任:title:hello mexico body:something #css#php #html city
結果應該是:mexico city
uj5u.com熱心網友回復:
您可以使用
$str = preg_replace('~(?:\b(?:title|body):\S |#\w )\s?~u', "", $str);
請參閱PHP 演示和正則運算式演示。
詳情:
(?:\b(?:title|body):\S |#\w )- 任何一個\b(?:title|body):\S- 一個單詞邊界 (\b),然后是title或body,:然后是一個或多個非空白字符|- 或者#\w- 一個#字符,然后是一個或多個 Unicode(由于u標志)字字符
\s?- 一個可選的空格(如果您需要匹配零個或多個空格,請更改?為)。*
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/531336.html
標籤:php正则表达式
