Skip to main content
 首页 » 编程设计

c#之正则表达式匹配太多

2024年01月29日26bhlsheji

(\[(c|C)=)(#?([a-fA-F0-9]{1,2}){3})\](.*)\[/(c|C)\] 

我希望此表达式匹配如下文本:“This is [c=FFFFFF]white text[/c] and [C=#000]black text[/C]。”

它确实会单独匹配一个 BB 代码,但如果有更多的 BB 代码(如示例中所示),它将创建两个 BB 代码序列的匹配(1 个匹配)。 (从 [c=FFFFFF]wh... 到 ...ck 文本[/C])

为什么会这样?另外,如何在 C# 中使点 (.) 包含换行符?

请您参考如下方法:

如果你不关心嵌套标签,你可以这样做:

(\[[cC]=)(#?([a-fA-F0-9]{3}){1,2})\](.*?)\[/[cC]\] 
//                                     ^- lazy match 

如果你想用正则表达式处理嵌套标签,检查this article在代码项目上。