Рассмотрим следующую строку method<arg1,arg2,arg3>
Получение нескольких совпадений для группы в RegEx
Я хотел бы использовать регулярные выражения, чтобы получить части method
, arg1
, arg2
, arg3
из этой строки.
Следующее регулярное выражение /([a-z0-9]+)<(?:([a-z0-9]+),?)*>/i
соответствует строке в целом.
То есть,
var result = /([a-z0-9]+)<(?:([a-z0-9]+),?)*>/i.test('method<arg1,arg2,arg3>');
// result = true
Но regEx.exec
метод возвращает только method
, arg3
части.
result = /([a-z0-9]+)<(?:([a-z0-9]+),?)*>/i.exec('method<arg1,arg2,arg3>');
// result is ["methodname<arg1,arg2,arg3>", "methodname", "arg3"]
// as opposed to
// ["methodname<arg1,arg2,arg3>", "methodname", "arg1", "arg2", "arg3"]
Есть ли способ получить все матчи группы?
Примечание: Я прошу об этом с целью обучения, и я не хочу, чтобы работа JavaScript работала.
Редактировать: Число аргументов (arg1, arg2 и т. Д.) Является произвольным и может меняться в разных случаях.
Это может помочь: HTTP: //www.regular-expressions .info/captureall.html – techfoobar
Может 'метод' появляться несколько раз в строке? –
+1, хорошо, хорошо сформированный вопрос – Senjai