Я пытаюсь получить все имена в такой строке:
:name, :lastName
Но я не могу найти правильный путь.
Это то, что я пробовал до сих пор:
/^(:((\w+)(,:(\w+))+).*)$/
В Java:
Pattern a = Pattern.compile("(:((\\w+)(,:(\\w+))+).*)");
Matcher m = a.matcher(":name,:lastName,:bd");
if( m.matches() ) {
for( int i = 0 ; i < m.groupCount() ; i++ ) {
out.println( i + " = " + m.group( i ) );
}
}
Выход:
0 = :name,:lastName,:bd
1 = :name,:lastName,:bd
2 = name,:lastName,:bd
3 = name
4 = ,:bd
И я пытаюсь получить переменное количество групп, содержащих [name, lastName, bd]
EDIT
Кстати, я пытаюсь получить это для более сложного регулярного выражения, чтобы соответствовать простым вещам, таким как:
insert into table values ( :a, :b, :c )
/insert\s+into\s+(\w+)\s+values\s+(\( HERE IS MY QUESTION \))/