Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2018, 21:00   #1
sem6703
 
Регистрация: 06.05.2015
Сообщений: 9
По умолчанию Какая регулярка отлавливает цифры использованные в качестве букв?

Есть строка в которой некоторые буквы заменены цифрами. Как найти такие цифры?
Должно работать так
5173 нет совпадений, т.к. это число
1eve1 совпадает 1 (единица вместо английской эл)
c010r совпадает 0 и 1 (ноль вместо буквы о, единица вместо эл)
Тестовая строка:
each pixe1 on the 1 c0l0rs c010r in a cyc1e multiply by 1 0, and then the s4me thing only with zdvigom 2 left
sem6703 вне форума Ответить с цитированием
Старый 02.06.2018, 17:55   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Попробуйте так
Код:
(\d)[A-z]|[A-z](\d)
Но я не уверен, что оно вам поможет
______

Полагаю вас интересует составление такого выражения в контексте JS. В этом языке есть возможность составить условие на последующие символы, но не участвующие в строке соответствия, то есть, в результате. Например, вы можете потребовать найти все цифры, за которыми стоит буква, но так, чтобы эти буквы не участвовали в результате.

Вот выдержка из книги Девида Фленагана "JavaScript. Подробное руководство, 5-е издание".

Цитата:
В JavaScript 1.5 (но не в JavaScript 1.2) в качестве якорных условий могут также выступать произвольные регулярные выражения. Если поместить выражение между символами (?= и ), оно станет условием на последующие символы, требующим, чтобы эти символы соответствовали указанному шаблону, но не включались в строку соответствия. Например, найти имя языка программирования
JavaScript, но только там, где за ним следует двоеточие, можно посредством выражения /[Jj]ava([Ss]cript)?(?=\:)/. Этот шаблон найдет слово «JavaScript» в предложении «JavaScript: The Definitive Guide», но проигнорирует слово «Java» в предложении «Java in a Nutshell», т. к. после него нет двоеточия.
Как сообщается в этой книге, в языке нет средств для составления условий на предыдущие символы (имеется в Perl).

Последний раз редактировалось Вадим Мошев; 02.06.2018 в 18:22.
Вадим Мошев вне форума Ответить с цитированием
Старый 02.06.2018, 20:34   #3
sem6703
 
Регистрация: 06.05.2015
Сообщений: 9
По умолчанию

Код:
c=c.replace(/([A-z])(\d+)/g,'$1<mark>$2</mark>');
c=c.replace(/(\d+)([A-z])/g,'<mark>$1</mark>$2');
Спасибо! Сейчас использую два регулярных выражения последовательно.
Работают корректно. Пока не придумал, как объединить их в одно.
sem6703 вне форума Ответить с цитированием
Старый 02.06.2018, 23:01   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
[A-z]
захватит очень большой диапазон символов, не являющихся буквами латинского алфавита.
Более правильным решением в данном случае было бы ловить
Код:
/[\da-z]+/ig
при этом, каждое совпадение проверять отдельно, в JS такая есть такая функциональная возможность на дефолтном уровне.
UPD: плюсик забыл
Alar, верни репу!

Последний раз редактировалось Naive; 02.06.2018 в 23:04.
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод букв в цифры niki-maximal Общие вопросы Delphi 3 07.11.2012 18:30
Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, соблюдается баланс точек и заглавных букв morsekkk JavaScript, Ajax 8 06.11.2012 20:32
Перевод букв в цифры Peperovich Общие вопросы C/C++ 3 22.12.2011 19:08
Паскаль. найти цифры среди букв и поменять местами. grom333 Паскаль, Turbo Pascal, PascalABC.NET 3 14.01.2011 22:32
какая из букв встречается в данной строке чаще StudeHt Помощь студентам 8 12.04.2009 00:28