Regular expressions \b but with not just alphanumeric characters in c#

后端 未结 2 2051
悲&欢浪女
悲&欢浪女 2021-01-22 05:35

I want the same functionality as \\b but with other characters.

In C#, I want to have something like

string str = \"\\\\b\" + Regex.Escape(         


        
2条回答
  •  日久生厌
    2021-01-22 05:48

    The problem you experience is related to the fact that \b word boundary is context dependent, and \b\(abc\b will match (abc in x(abc) but not in :(abc) (\b\( means there must be a word char before ().

    To match any string that is not enclosed with word chars use

    var pattern = $@"(?

    See the regex demo.

    Here, (? is a negative lookbehind that will make sure there is no word char immediately to the left of the current location, and (?!\w) negative lookahead will make sure there is no word char immediately to the right of the current location.

    Other custom "word" boundaries:

    • Whitespace word boundary: var pattern = $@"(?
    • Word and symbol boundary (if you do not want to find c in c++): var pattern = $@"(?

提交回复
热议问题