Regex 如何";摘录;“之前的字符串”-&引用;但是如果字符串本身可以包含一个"-&引用;?

Regex 如何";摘录;“之前的字符串”-&引用;但是如果字符串本身可以包含一个"-&引用;?,regex,Regex,我有这样的软件包列表(比这个大): 我想要: accounts-qml-module accountsservice alsa-firmware alsa-oss alsa-plugins alsa-utils augeas baloo baloo-widgets 但我真的不知道怎么做,因为有些包里面有一个“-”破折号,我很困惑如何才能实现这个目标,避免手动操作 有没有bash的“技巧”?试试这个正则表达式: ^.+?(?=-[\d.\-:+]+) 公平地说,您想修剪任意数量的尾随([0-9

我有这样的软件包列表(比这个大):

我想要:

accounts-qml-module
accountsservice
alsa-firmware
alsa-oss
alsa-plugins
alsa-utils
augeas
baloo
baloo-widgets
但我真的不知道怎么做,因为有些包里面有一个“-”破折号,我很困惑如何才能实现这个目标,避免手动操作

有没有bash的“技巧”?

试试这个正则表达式:

^.+?(?=-[\d.\-:+]+)

公平地说,您想修剪任意数量的尾随
([0-9.]+)*
^.+?(?=-[\d.\-:+]+)