regex word boundary excluding the hyphen

后端 未结 2 1296
Happy的楠姐
Happy的楠姐 2020-12-28 15:03

i need a regex that matches an expression ending with a word boundary, but which does not consider the hyphen as a boundary. i.e. get all expressions matched by



        
2条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-28 15:42

    You can use a lookahead for this, the shortest would be to use a negative lookahead:

    type ([a-z])(?![\w-])
    

    (?![\w-]) would mean "fail the match if the next character is in \w or is a -".

    Here is an option that uses a normal lookahead:

    type ([a-z])(?=[^\w-]|$)
    

    You can read (?=[^\w-]|$) as "only match if the next character is not in the character class [\w-], or this is the end of the string".

    See it working: http://www.rubular.com/r/NHYhv72znm

提交回复
热议问题