在大字符串中查找标记

本文关键字:查找 字符串 | 更新日期: 2023-09-27 18:15:33

嗨,我需要在一个大字符串中找到所有匹配,我发现了这个问题

检测字符串中的特定标记。c#

看起来很完美!唯一的问题是它不起作用。这个问题和我的问题的不同之处在于,我需要用[['w+]]代替#'w+#。以下是我的代码(sb是我的大字符串):

        Regex reg = new Regex(@"[['w+]]");
        foreach (Match m in reg.Matches(sb.ToString()))
        {
            RenderHtmlRecursive(helper, sb, path, m.Value);
        }

当我运行这个,我得到1匹配:),但值是(m.Value): "t]"

sb is(目前小字体):Card Card [[RegisterText]]

任何想法?

在大字符串中查找标记

[]是正则表达式中使用的特殊字符,如果您希望匹配该字符,则需要对它们进行转义。

只需将其更改为以下内容即可;

Regex reg = new Regex(@"'['['w+']']");

这将是使用DAFSA的绝佳机会,DAFSA是Trie的一种形式,没有有效负载。高效,O(n)查找大字符串中的短语

您可以考虑在regex中使用命名标记。例如((((POBox | PO ' sBox) ' s * ' d *)), ? ' s ?)?(((?([' w ' d ' s '] )) ' s ?) ?((? ((' w ' s -) ' w ' s(圣' s) ? (' w) ' s(街路圣| | | rd | |关闭cl | |大道ave | av ph值| | |路径驱动| drv循环| | |法院CT圆| | |巷LN))), ? ' s ?))?((?([' 陆p{你}' p {} ' p {Lo} ' p{电脑}' p {Lt} ' p {Lm} '] )) ' s ?) ? ((?(维多利亚州|维多利亚州|新南威尔士州|新南威尔士州|南澳大利亚州|南澳大利亚州|北领地|新界|西澳大利亚州|西澳大利亚州|塔斯马尼亚州|塔斯马尼亚州|ACT|昆士兰州|昆士兰州)'s* ?(?('d{4}),?'s?)?(?(澳大利亚))?

28 Lidco Street, Arndell Park, Sydney 2148

要计算你的regx表达式,使用Expresso-一个构建和测试正则表达式的工具是很方便的,网址是http://www.codeproject.com/Articles/3669/Expresso-A-Tool-for-Building-and-Testing-Regular-E