Regex to match a word with + (plus) signs

后端 未结 5 1471
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-04 01:46

I\'ve spent some time, but still have to solution. I need regular expression that is able to match a words with signs in it (like c++) in string.

I\'ve used /\

5条回答
  •  Happy的楠姐
    2020-12-04 02:12

    If you want to match a c++ between non-word chars (chars other than letters, digits and underscores) you may use

    \bc\+\+\B
    

    See the regex demo where \b is a word boundary and \B matches all positions that are not word boundary positions.

    C# syntax:

    var pattern = @"\bc\+\+\B";
    

    You must remember that \b / \B are context dependent: \b matches between the start/end of string and the adjoining word char or between a word and a non-word chars, while \B matches between the start/end of string and the adjoining *non-*word char or between two word or two non-word chars.

    If you build the pattern dynamically, it is hard to rely on word boundary \b pattern.

    Use (? and (?!\w) lookarounds instead, they will always match a word not immediately preceded/followed with a word char:

    var pattern = $@"(?

    If the word boundaries you want to match are whitespace boundaries (i.e. the match is expected only between whitespaces), use

    var pattern = $@"(?

提交回复
热议问题