Python 要在最后-(破折号)之后匹配的正则表达式

Python 要在最后-(破折号)之后匹配的正则表达式,python,regex,Python,Regex,建议一个正则表达式,以匹配最后-(破折号)之后的任何内容 案例1 [1]中的a='abc-def-ghi' Out[2]:结果='-ghi' 案例2 [1]中的a='abc-def-ghi2323' Out[2]:结果='-ghi 232' 我试过跟着正则表达式 -[\s |\w |\d]+(?!.\-) 但在以下情况下无法获得愿望输出: Aaab,xyz,abc-报价编号18155试试这个:-[^-]*(?!.-) 输入:abc-def-ghi 匹配1:-ghi 输入:abc-def

建议一个正则表达式,以匹配最后-(破折号)之后的任何内容

  • 案例1

    [1]中的
    a='abc-def-ghi'
    Out[2]:结果='-ghi'

    • 案例2
    [1]中的
    a='abc-def-ghi2323'
    Out[2]:结果='-ghi 232'

我试过跟着正则表达式

-[\s |\w |\d]+(?!.\-)

但在以下情况下无法获得愿望输出:
Aaab,xyz,abc-报价编号18155

试试这个:
-[^-]*(?!.-)


输入:
abc-def-ghi
匹配1:
-ghi

输入:
abc-def-ghi2323

匹配1:
-ghi 2323
您可以匹配最终用途
$

完整正则表达式:
-[^-]*$


如果您不需要使用正则表达式

您只需使用
'-'+str.split('-')[-1]

我就想到了这个:

-[^-]*$

适用于您的两个示例

一个简单的非
正则表达式
解决方案:

a = 'abc - def - ghi'
print('-{}'.format(a.rsplit('-', 1)[1]))
# - ghi

你试过什么?@appleapple我试过
-[\s |\w |\d]+(?!.\-)
,然后把它付诸实践。加上您的失败示例(输入、输出、正则表达式)。更好a你会接受非正则表达式的解决方案吗?@theausome谢谢,但我只需要正则表达式。Upps你快了一点:3好。这可能对将来的人有所帮助。