Tôi muốn kiểm tra 'n' nổ tung chuỗi này:PHP preg_match_all, kiểm tra & nổ
{$gallery#pager/collectionName/imageName/manual/no_effect/foo1/foo2/.../fooN}
tới:
var_name[0] => 'gallery',
modul_name[0] => 'pager',
3[0] => 'collectionName',
4[0] => 'imageName',
5[0] => 'manual'
...
N[0] => 'fooN'
tôi đã regexp sau:
/{\$(?P<var_name>[^#]+)#(?P<module_name>[^\/]+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+))?)?)?)?)?}/
, nhưng nó quá xấu và chỉ hỗ trợ tối đa năm tham số. Hãy giúp tôi tạo một phần đệ quy để trích xuất tất cả các tham số.
ps: Vâng, tôi có thể chia nhỏ này để var_name, module_name và paramters phần, sau đó tôi có thể phát nổ thông số phần bởi '/', nhưng tôi không thích nó.
Phải, nhưng không xác nhận nó –
Vui lòng chỉ định chính xác những gì cần được xác nhận trong câu hỏi của bạn – Mariano
'{$ var_name # module_name}' - định dạng này được yêu cầu. Các đối số là tùy chọn: '{$ var_name # module_name/arg1/arg2 /.../ argN} 'Tất cả tên và giá trị (tên var, tên mô-đun, đối số) đều có thể kiểm tra bởi \ w +. –