Имя: Пароль:
1C
 
жадное регулярное выражение, найти строку до первого знака
0 vde69
 
17.11.22
16:58
помогите с регуляркой, нужно найти строку до знака "-"

пример
данные: 121-2ук ц2
регулярка: '.*-'

возвращает 121- что верно

но если в данных два знака -
данные: 121-2ук-ц2
то вернет 121-2ук- а мне нужно только 121-
1 Timon1405
 
17.11.22
17:31
.*?-
с флагом global = false
или
[^-]+-
2 Fragster
 
гуру
17.11.22
17:48
вся наша жизнь - борьба жадности с ленью
3 Fragster
 
гуру
17.11.22
17:49
4 Kassern
 
17.11.22
17:54
(0) А зачем тут регулярка? Можно ведь проще типа Лев(СтрокаСДанными,СтрНайти(СтрокаСДанными,"-")-1)
5 Kassern
 
17.11.22
17:57
Ну или СтрРазделить(СтрокаСДанными,"-")[0] Только проверить нужно, что разделитель/строка поиска есть в строке
6 vde69
 
17.11.22
19:39
(4) мне не в 1с
(2) я еще до сабжа пробовал ленивицу включить, но не вышло
(1) вышло так
grep -P -o '.*\d-' | grep -o '.*[^-]
7 Timon1405
 
17.11.22
22:23
(6) тогда уж проще
grep -oP ^[^-]+
а у вас сломается на "123-3456-657"
8 НЕА123
 
18.11.22
09:56
cut -d'-' -f 1