regex Python正则表达式匹配句子中的每个单词,直到最后一个单词中有连字符,不工作

mrwjdhj3  于 2023-08-08  发布在  Python
关注(0)|答案(2)|浏览(92)

我用这个regex来查找一个句子中的单词,直到最后一个单词中有连字符。
这是我的输入字符串:

13wfe + 123dg Tetest-xt ldf-dfdlj-dfldjf-dfs test 123

字符串
到目前为止,使用这个正则表达式,从这个post,我得到的匹配是这样的:

13wfe + 123dg Tetest-xt ldf-dfdlj-


但我的预期输出应该只有这个:

13wfe + 123dg Tetest-xt


这是我使用的正则表达式(.*\b)(?=\w+-)
我不想要最后一个有连字符的单词。请在这个场景中引导我。

23c0lvtd

23c0lvtd1#

只需添加一个空格,与最后一个单词(.*)(?=\s\w+-)分开,单词边界是无用的
regex101

bq3bfh9z

bq3bfh9z2#

您可以使用以下模式。
如果文本不包含带连字符的单词,则捕获整个文本。

(.+?\w+(?:-\w+)+|.+)(?: +.+)?

个字符
产出

abc 123 def 456 ghi 789 jkl
abc 123 def 456 ghi 789-jkl
abc 123 def 456-ghi
abc 123 def-456
abc-123

相关问题