8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
|
|
1 | |
Написать регулярное выражение для выделения из строки только одного числа на определённой позиции14.05.2015, 09:51. Показов 3031. Ответов 6
Метки нет (Все метки)
Товарищи, подскажите!
Как написать рег. выражение для выделения из строки только одного числа на определённой позиции: есть строка типа " 12 23 -123 34 " - начало и конец строки могут быть любым пробельным символом (или несколько символов - \s*), числа разделены также любыми последовательностями \s+. Необходимо получать число на (например) третьей позиции, т.е. -123. P.S.: Я могу получить только все числа паттерном "((?<=\s)|(?<=\A))([-]{0,1}\d+)(?=(\s|\Z))"
0
|
14.05.2015, 09:51 | |
Ответы с готовыми решениями:
6
Регулярное выражение работает только для строки с дословными литералами Написать регулярное выражение для поиска строки Регулярное выражение для выделения имени файла из пути Нужно написать регулярное выражение для поиска числа в строке |
63 / 38 / 6
Регистрация: 24.01.2013
Сообщений: 136
|
||||||
14.05.2015, 23:18 | 2 | |||||
1
|
8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
|
|||||||||||
15.05.2015, 10:27 [ТС] | 3 | ||||||||||
Спасибо, petrovish1981, сейчас буду пробовать... Но я не могу написать в отдельной строке "$3", т.к. всё это выражение идёт в
0
|
5991 / 2000 / 323
Регистрация: 10.12.2013
Сообщений: 6,891
|
||||||
15.05.2015, 17:09 | 4 | |||||
1
|
352 / 222 / 25
Регистрация: 30.09.2012
Сообщений: 548
|
||||||
16.05.2015, 20:14 | 5 | |||||
Попробуйте так
1
|
8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
|
|||||||||||||||||||||||||||||||
22.05.2015, 12:36 [ТС] | 6 | ||||||||||||||||||||||||||||||
volodin661, в XE2 c boost 1.39 не находит совпадений в Вашей строке с паттерном "([-]?\d+)\b".
pka, спасибо также за ответ, но мне надо как-то "инициализировать" переменную $txt в самом рег. выражении: до строки
P.S.: я сейчас пробую получать [n]-ые совпадения через
Добавлено через 22 минуты volodin661, извиняюсь, конечно находит, но с "([-]?\\d+)\\b". И находит все подряд, а не третью например. Добавлено через 13 минут Похоже, удалось сделать через "boost::wsregex_token_iterator", но тогда надо указывать структуру всей строки, а не просто одного числа, которое ищем... Получилось типа
0
|
5991 / 2000 / 323
Регистрация: 10.12.2013
Сообщений: 6,891
|
|
22.05.2015, 15:22 | 7 |
Сообщение было отмечено Whatson2 как решение
Решение
да-да, два бэк_слэша, но ты же в Перл зашёл, мы тут избаловались, обходимся одним ))
и понятное дело, что всё подряд, ты же итератор просил(см. свой пример), я тебя его и дал, а отсчитать итератором третье совпадение даже пьяная девушка сможет, потому я и не стал обижать тебя раз'яснениями.
2
|
22.05.2015, 15:22 | |
22.05.2015, 15:22 | |
Помогаю со студенческими работами здесь
7
Регулярное выражение для выделения слов, начинающихся с заглавной буквы Регулярное выражение для получения чисел из строки, где эти два числа записаны через слеш Регулярное выражение: Выбрать из строки только первые 4 цифры Регулярное выражение где только числа и английские буквы доступны Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |