我需要帮助修改现有的正则表达式模式,使其在模式搜索中不包含最后一个单词。
目前,这是regex模式,我有.*\w(?=\s+\w+-)
,这是输入字符串:
13wfe + 123dg Tetest-xt ldf-dfdlj-dfldjf-dfs test
字符串
现在,这个模式返回预期的匹配:
13wfe + 123dg Tetest-xt
型
但是,我有另一个场景,我的输入字符串是:
13wfe + 123dg Tetest-xt ldf-dfdlj-dfldjf-dfs test-test
型
我的预期匹配是
13wfe + 123dg Tetest-xt
型
但我得到了
13wfe + 123dg Tetest-xt ldf-dfdlj-dfldjf-dfs
型
所以现在,基本上我想修改regex模式,它在模式搜索过程中基本上会忽略句子中的最后一个单词。请在这方面指导我。
2条答案
按热度按时间odopli941#
你可以使用这个正则表达式,在已经存在的lookahead条件中添加负lookahead条件:
字符串
RegEx Demo
负先行条件
(?!\w+$)
将确保在匹配hyohen后忽略行中的最后一个字。3zwjbxry2#
您可以使用捕获组,并定义一个排除值的模式。
例如,此模式将捕获直到最后一个单词或连字符的单词的每个值。
字符串
虽然,你暗示它应该排除最后一个词,和倒数第二个词。
因此,您可以修改模式以在末尾包含一个额外的匹配。
型
下面是一个例子。
型
产出
型