0
我有一個字符串的三個變化:PHP/JavaScript的正則表達式 - 非捕獲組
1. view=(edit:29,30)
2. view=(edit:29,30;)
3. view=(edit:29,30;x:100;y:200)
我需要一個正則表達式是:
- 捕獲直至幷包括」 30"
- 捕獲「x:100; y:200」 - 每當第一場比賽後有分號時;
- 不會在任何組中包含最左邊的分號;
- 整個字符串在第一個分號的右邊,最多')'可以/應該在同一個組中。
我想出:
$pat = '/view=\((\w+)(:)([\d,]+)((;[^)]+){0,}|;)\)/';
應用於 '視圖=(編輯:29,30; X:100; Y:200)' 它產生:
Array
(
[0] => view=(edit:29,30;x:100;y:200)
[1] => edit
[2] => :
[3] => 29,30
[4] => ;x:100;y:200
[5] => ;x:100;y:200
)
問題。我如何刪除';'從比賽[4]和[5]?
重要事項。當不存在分號時,相同的RegExp應該與字符串一起工作,如:'view =(edit:29,30)'。
$pat = '/view=\((\w+)(:)([\d,]+)((;[^)]+){0,}|;)\)/';
$str = 'view=(edit:29,30;x:100;y:200)';
preg_match($pat, $str, $m);
print_r($m);
謝謝!