87 / 30 / 19
Регистрация: 16.01.2015
Сообщений: 250
1

Получить последний символ "," или "-" стоящий в конце строки перед цифрами и буквами

17.02.2016, 13:09. Показов 2833. Ответов 2
Метки нет (Все метки)

Здравствуйте. Имеется примерно такой текст "XX1,XX3-XX11" и нужно получить последний символ "," или "-" стоящий в конце строки перед цифрами и буквами. В данном случае нужно найти "-".
В таком примере "X2,X4-X7,X9" получается нужно получить ",".
Пробую: \W+, но так отображаются все запятые и тире, которые есть в строке, а нужен последний.

И чтобы тему новую не создавать, может тут сразу получу ответ.
Как получить последнюю запись до символов "," или "-". Например "X2,X4-X7,X9", то это "X9".
Тут пробовал: \S+$ так да, получаю последний "X9", но проблема, если запись такого вида(с тире) "XX1,XX3-XX11", то я получаю вот что "XX3-XX11", а нужно до тире "XX11"

Добавлено через 7 минут
Нашёл сайт regex101.com. И кажется и то, что я нашёл "\W+" и "\S+$" не так работают.

Добавлено через 27 минут
Со вторым вопросом вроде разобрался:
(\w+)$.
С первым пока никак.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2016, 13:09
Ответы с готовыми решениями:

Каждый символ "?" удвоить. Каждый символ, стоящий перед "!", заменить заданным символом
Каждый символ ? удвоить. Каждый символ, стоящий перед !, заменить символом, введенным с...

Создать последовательность цифр, перед какой может быть знак "+" или "-", в конце пропуск.
Используя только ввод с клавы (процедуру Read(c), где с-БУКВЕНАЯ переменная) создать...

Получить значение из {"text1":"val1","text2":"val2","text3":{"text":"val"}}
Есть такая строка var my = '{"text1":"val1","text2":"val2","text3":{"text":"val"}}'; Как из...

Даны текстовый файл "F" и строка "S". Получить все строки файла "F", содержащие в качестве фрагмента строку "S".
Плиз помогите написать прогу: Даны текстовый файл "F" и строка "S". Получить все строки файла "F",...

2
Hello Kitty
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
17.02.2016, 13:10 2
Лучший ответ Сообщение было отмечено Hikaru как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
        //Enter your code here, enjoy!
 
 
$s = "X2-X4-X7, , X9";
 
$ch = preg_match_all("/([,-])([^,-]*)/si" , $s , $r);
$lCh = $r[1][ count($r[1]) - 1 ];
$lWord = $r[2][ count($r[2]) - 1 ];
 
echo $lCh , "\n";
echo $lWord , "\n";
Добавлено через 10 секунд
http://sandbox.onlinephpfuncti... 8f7294d77f
1
1038 / 647 / 389
Регистрация: 07.11.2015
Сообщений: 1,038
17.02.2016, 21:51 3
Лучший ответ Сообщение было отмечено Hikaru как решение

Решение

PHP
1
2
preg_match('/.*([,-])([^,-]*)$/s', $text, $match);
print_r($match);
PHP
1
2
preg_match('/(([,-])|\K[^,-]+)+/', $text, $match);
print_r($match);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2016, 21:51
Помогаю со студенческими работами здесь

После каждого символа "О" вставлять пробел и подсчитывать количество букв "А" стоящих между буквами "К" и "Л"
После каждого символа &quot;О&quot; вставлять пробел и подсчитывать количество букв &quot;А&quot; стоящих между буквами...

Даны строки а="вариант",b= "Высоко", с = "макароны". Получить слово "соковарка"
4 .Даны строки а=&quot;вариант&quot;,b= &quot;Высоко&quot;, с = &quot;макароны&quot;. Получить слово &quot;соковарка&quot;.

Определить число вхождений в строку подстроки "аба", вывести символы строки, не являющейся буквами или цифрами
решить нужно в течении часа определить число вхождений в строку подстроки &quot;аба&quot; вывести...

Удалить из строки все буквы"а" и"о". символ "*" заменить"-".
дана строка из 40 символов . удалить из неё все буквы&quot;а&quot; и&quot;о&quot;. символ &quot;*&quot; заменить&quot;-&quot;. решите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru