Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.05.2019, 14:04
Аватар для Rust
Интересующийся
Отправить личное сообщение для Rust Посмотреть профиль Найти все сообщения от Rust
 
Регистрация: 24.05.2019
Сообщений: 10

Не n-е совпадение шаблона, а n-я скобка!
Метод должен работать и без флага g
Ответить с цитированием
  #12 (permalink)  
Старый 24.05.2019, 14:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Rust
плохо представляю что вам нужно.
Ответить с цитированием
  #13 (permalink)  
Старый 24.05.2019, 14:55
Аватар для Rust
Интересующийся
Отправить личное сообщение для Rust Посмотреть профиль Найти все сообщения от Rust
 
Регистрация: 24.05.2019
Сообщений: 10

Сообщение от рони Посмотреть сообщение
плохо представляю что вам нужно.
Мне нужна функция от двух параметров - строка и регулярное выражение.
Регулярное выражение может содержать некоторое количество круглых скобок, обозначающих атомы регулярного выражения. В том числе и вложенные друг в друга!

Функция должна найденные атомы регулярного выражения обрамлять указанными символами.
Ответить с цитированием
  #14 (permalink)  
Старый 24.05.2019, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Rust,
может кто-то другой сможет вам помочь, для меня, вашего описания по прежнему недостаточно.
Ответить с цитированием
  #15 (permalink)  
Старый 24.05.2019, 15:29
Аватар для Rust
Интересующийся
Отправить личное сообщение для Rust Посмотреть профиль Найти все сообщения от Rust
 
Регистрация: 24.05.2019
Сообщений: 10

Может быть проблема в терминологии? Атом == группа вот в этом смысле
Ответить с цитированием
  #16 (permalink)  
Старый 24.05.2019, 15:53
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Rust,
Регулярка вообще любая?

Может ли там быть, например, вот такая хрень: (\d)+
т.е. то что в скобках повторяется несколько раз и надо каждое повторение отдельно обработать? И может ли быть такое для вложенных скобок? Типа (...(\d)+...)*

Сколько может быть скобок в регулярке?

Это должно быть кроссбраузерно, или код только для Хрома и node.js?


Я, кажется, понял, что надо, но задача крепкая, если в совсем общем виде.
Ответить с цитированием
  #17 (permalink)  
Старый 24.05.2019, 15:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Rust
Функция должна найденные атомы регулярного выражения обрамлять указанными символами.
Цитата:
$n или $nn, где n/nn - десятичные цифры
Вставляет n-ю скобку в совпадении,
что мешает написать нужный шаблон замены?
Ответить с цитированием
  #18 (permalink)  
Старый 24.05.2019, 16:00
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Сообщение от рони
что мешает написать нужный шаблон замены?
Автору нужен код, который этот шаблон автоматически сгенерирует. Но просто шаблоном тут не всегда можно будет обойтись.
Ответить с цитированием
  #19 (permalink)  
Старый 24.05.2019, 16:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Alexandroppolus
который этот шаблон автоматически сгенерирует.
чтобы это значило? подожду решения.
Ответить с цитированием
  #20 (permalink)  
Старый 24.05.2019, 16:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

пока так вариант с неавтоматическим шаблоном...

var str = "Ну что сказать? -12.85 - это отрицательное число, а 0.86 - положительное";
function r(v,s) {
  return v.replace(s, function(...f) {
     return  `${f[1]}<span class=P1>${f[2]}</span><span class=P2>${f[3]}</span>`
  });
}
str = r(str, /([^-\d.])(\d+)(\.\d+)?/g);
alert(str);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пробел в регулярном выражении N1kS Общие вопросы Javascript 5 25.06.2016 15:59
Экранирование спецсимволов в строковом регулярном выражении riva Общие вопросы Javascript 2 26.09.2014 15:46
Помощь в регулярном выражении! celkabelka Общие вопросы Javascript 5 13.04.2013 17:53
Способ реализации позитивного просмотра в перед в регулярном выражении kichSman Общие вопросы Javascript 10 11.04.2012 21:19
Как в регулярном выражении обозначается "может быть а может и не быть" ? [MI_nor] Общие вопросы Javascript 4 30.11.2011 21:09