Regex for removing a specific BBCode from a string

前端 未结 3 1853
陌清茗
陌清茗 2021-01-20 11:27

I\'m trying to write a simple method for removing specific BBCodes from an input string.

For example, where I have an input of:

string input = \"[b]H         


        
相关标签:
3条回答
  • 2021-01-20 11:56

    Use this simple regex: \[/?{0}\]

    Your regex is removing the whole string

    • Your regex \[{0}\].*?\[\/{1}\] is removing the entire [b]...[/b] string. That's why you are getting an empty string from the replacement.

    • What you need is to remove only the [b] and [b]. In normal regex, this is expressed quite simply with \[/?b\], where the slash is made optional by the ?

    • In your parametrized regex, something like \[/?{0}\] will work.

    0 讨论(0)
  • 2021-01-20 12:00

    If you sure that both starting and trailing special symbol must occur and you don't want them to be in a result, you can use positive look back ((?<=(your symbols here))) and positive look ahead ((?=(your symbols here))) for specified characters.

    Complete answer will look like this:

    (?<=(\[{0}\])).*(?=(\[\/{1}\]))
    
    0 讨论(0)
  • 2021-01-20 12:01

    The below regex would capture the string Hello World! inside the second group.

    ^(.*?)((?<=])[^[]*)(.*)$
    

    DEMO

    So replace all your input string with the second captured group.

    0 讨论(0)
提交回复
热议问题