жадное регулярное выражение, найти строку до первого знака
☑
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
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс