Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2016, 19:57
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Помогите уточнить паттерн
Многострочный текст:
Код:
0 HEAD
1 SOUR AGES
2 VERS 2.0.4
нужно разделить на три группы. Использую паттерн
Код:
(\d+)\s(\w*)\s*(.*)
с флагом m
В результате к первой строке из двух групп добавляется вся третья строка.
Подскажите решение, когда в строке может быть и две и три группы.
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2016, 20:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Sergey_New,
какой результат вы хотите получить?
Ответить с цитированием
  #3 (permalink)  
Старый 10.05.2016, 20:11
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Для каждой строки должно быть три группы, для первой строки третья группа д.б. пустая
Ответить с цитированием
  #4 (permalink)  
Старый 10.05.2016, 20:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Sergey_New,
могу только повторить вопрос или спросить какие проблемы?
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2016, 20:23
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Должно получиться:
Строка1
Группа 1: 0
Группа 2: HEAD
Группа 3: ""
Строка2
Группа 1: 1
Группа 2: SOUR
Группа 3: AGES
Строка3
Группа 1: 2
Группа 2: VERS
Группа 3: 2.0.4
Ответить с цитированием
  #6 (permalink)  
Старый 10.05.2016, 20:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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>
Ответить с цитированием
  #7 (permalink)  
Старый 10.05.2016, 20:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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>
Ответить с цитированием
  #8 (permalink)  
Старый 10.05.2016, 21:04
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

рони,
спасибо, код работает!
Скажите, а только паттерном без дополнительных функций этого сделать нельзя?
Ответить с цитированием
  #9 (permalink)  
Старый 10.05.2016, 21:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Sergey_New
Скажите, а только паттерном без дополнительных функций этого сделать нельзя?
не представляю даже о чём вы.
Ответить с цитированием
  #10 (permalink)  
Старый 10.05.2016, 21:17
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Например, использовать | (или) для определения третьей группы в паттерне.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить проблему Ingiborn Общие вопросы Javascript 0 10.07.2014 13:12
Помогите сделать так чтоб по клику открывалось и по клику же закрывалось Maxsl_89 Элементы интерфейса 1 25.10.2013 16:11
Помогите с тестированием fsb-k Работа 8 29.03.2013 11:20
Помогите разобраться!!! Greendumb Общие вопросы Javascript 8 19.08.2010 14:04
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50