1
請仔細閱讀本問題的第1部分: -需要幫助的正則表達式,子2點的正則表達式之間
Need Help In Regex, substring between two brackets
$result = '';
$str = ' ... [ ... SUB_STRING_TO_BE_SEARCHED ... ] ... [ .../... SUB_STRING_TO_BE_SEARCHED ... ] ... [ ... THIS_SHOULD_NOT_GET_SELECTED ... ]';
$sub_str = '';
if(preg_match('#\[.*?'.$sub_str.'.*?\]#' , $str)) {
if (preg_match(REGEX_2 , $str)) {
$result = preg_replace(REGEX_3 , '', $str);
} else {
$result = preg_replace('#\[.*?'.$sub_str.'.*?\]#', '', $str);
}
}
$結果應該是: -
$result = " ... ... [ ... THIS_SHOULD_NOT_GET_SELECTED ... ]";
然而,$ str_2: -
$str_2 = ' ... [ ... SUB_STRING_TO_BE_SEARCHED ... ] ... [ ... THIS_SHOULD_NOT_GET_SELECTED ... ]';
$結果也應保持: -
$result = " ... ... [ ... THIS_SHOULD_NOT_GET_SELECTED ... ]";
說明: -
第1步:好了,從以前的問題,我可以很容易地得到這個字符串: -
[ ... THIS_SHOULD_NOT_GET_SELECTED ... ]
第2步: - REGEX_2應該檢查這是否存在: -
[ .../... THIS_SHOULD_NOT_GET_SELECTED ... ]
(注意正斜槓,讓我們假設它只會出現一次EEN的THIS_SHOULD_NOT_GET_SELECTED
和左托架[
)
步驟3: - 如果發現REGEX_2然後REGEX_3應選擇此子: -
[ ... SUB_STRING_TO_BE_SEARCHED ... ] ... [ .../... SUB_STRING_TO_BE_SEARCHED ... ]
另一個示例: -
$str_3 = ' ... [ ... AA ... ] ... [ .../... AA ... ] ... [ ... B ... ] ... [ ... AA ... ] ... [ .../... AA ... ] ... [ ... AA ... ]';
$substring_3 = 'AA'
$result = ' ... ... [ ... B ... ] ... ... ';
這種美容!! –
@OmarTariq好吧,如果你發現那樣的美麗...... :) – Jerry