Sergey_New,
не понимаю вас |
рони,
сам паттерн должен определять, если после второй группы нет текста, то нужно возвращать "", в другом случае возвращать третью группу. Т.е. типа: ((\d+)\s(\w*))|((\d+)\s(\w*)\s*(.*)) |
Нашел совет: Нужно использовать ленивый квантификатор.
Пока не разобрался где его применить. |
Похоже получилось:
(\d+)\s(\w*)\s*?(.*) |
Sergey_New,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <textarea name=""> 0 HEAD 1 SOUR AGES 2 VERS 2.0.4 </textarea> <script> var a = document.querySelector("textarea").value, k = []; a.replace(/^(\d+)\s(\w*)\s*?((\S.*?)?$)/gim, function(s,a,b,c) { k.push([a,b,c]) return s }); alert(JSON.stringify(k)) </script> </body> </html> |
рони,
спасибо! |
Цитата:
var str = '0 HEAD\n\ 1 SOUR AGES\n\ 2 VERS 2.0.4'; var res = str.replace(/(\d+) (\w+)( (.*(\n|$)))?/g, 'Группа 1: $1\nГруппа 2: $2\nГруппа 3: $4'); alert(res); |
Часовой пояс GMT +3, время: 20:04. |