正則表達式並不是我最強的套裝,我在這種情況下遇到了一些麻煩。從括號,括號和連字符的字符串中獲取子字符串
我有以下字符串:
locale (district - town) [parish]
我需要提取以下信息: 1 - 區域設置 2 - 區 3 - 鎮
而且我有這些解決方案:
1 - 區域
preg_match("/([^(]*)\s/", $input_line, $output_array);
2 - 區
preg_match("/.*\(([^-]*)\s/", $input_line, $output_array);
3 - 鎮
preg_match("/.*\-\s([^)]*)/", $input_line, $output_array);
而這些似乎很好地工作。 但是,字符串可以呈現像任何這些:
localeA(localeB) (district - town) [parish]
locale (district - townA(townB)) [parish]
locale (district - townA-townB) [parish]
區域設置還可以包括其自身的括號內。 城鎮可以包括括號和/或自己的連字符。
這使得很難提取正確的信息。在3個場景上面,我將不得不提取:
localeA(localeB)+小區+鎮
區域+小區+ townA(townB)
區域+小區+ townA-townB
我發現很難處理所有這些情況。你能幫我嗎?
在此先感謝
[?GOT速度(http://regex101.com/r/xS9fZ1) – HamZa
@Hamza:爲什麼評論爲什麼不回答? – anubhava
@anubhava我忙於其他事情,這是一個快速小提琴。如果我發佈這個答案,我至少應該提供一些解釋。 – HamZa