Помогите уточнить паттерн
Многострочный текст:
Код:
0 HEAD Код:
(\d+)\s(\w*)\s*(.*) В результате к первой строке из двух групп добавляется вся третья строка. Подскажите решение, когда в строке может быть и две и три группы. |
Sergey_New,
какой результат вы хотите получить? |
Для каждой строки должно быть три группы, для первой строки третья группа д.б. пустая
|
Sergey_New,
могу только повторить вопрос или спросить какие проблемы? |
Должно получиться:
Строка1 Группа 1: 0 Группа 2: HEAD Группа 3: "" Строка2 Группа 1: 1 Группа 2: SOUR Группа 3: AGES Строка3 Группа 1: 2 Группа 2: VERS Группа 3: 2.0.4 |
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)) a = a.match(/^(\d+)\s(\w*)\s*?(\S.*?)?$/gim) a = a.map(function(a) { return a.split(/\s+/) }); alert(JSON.stringify(a)) </script> </body> </html> |
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 = a.match(/^(\S+)(\s\S+)+?$/gim) a = a.map(function(a) { return a.split(/\s+/) }); alert(JSON.stringify(a)) </script> </body> </html> |
рони,
спасибо, код работает! Скажите, а только паттерном без дополнительных функций этого сделать нельзя? |
Цитата:
|
Например, использовать | (или) для определения третьей группы в паттерне.
|
Часовой пояс GMT +3, время: 13:34. |