我有一系列字符串,其中一些字符串末尾有一个年份字符串,格式为-2022
。我希望将所有内容与 4 位年份字符串之前-
匹配,但如果没有年份,那么我想返回整个字符串。以下:
import re
x = "itf-m15-cancun-15-men-2022"
re.search(r"^.+?(?=-dddd)", x).group()
让我'itf-m15-cancun-15-men'
我正在寻找。但是,以下几点:
import re
x = "itf-m15-cancun-15-men"
re.search(r"^.+?(?=-dddd)", x).group()
错误,因为未返回任何结果。如何捕获 4 位年份字符串之前的所有内容,但不包括-
,或者如果年份字符串不存在,则返回整个字符串?
在展望中添加或结束|$
:
^.+?(?=-d{4}|$)
在正则表达式101观看演示
或者,可以在此处使用显式贪婪交替,就像本演示中一样。
通过在(?=-dddd)
后添加一个?
来使成为条件。(在JavaScript中测试)
/^.+?(?=-dddd)?$/