• 一个简单的正则表达式应用,正则匹配选出XPath表达式 无为而为


    需求是:
    一个字符串,中间包含XPath,XPath 使用“{”和“}” ,即{XPath1}xxx{XPath2}.
    需要取出XPath ,并且在一个XML文件中间计算XPath表达式的值。

    显然需要用到正则表达式:
    代码如下:

     static void Main(string[] args)
            
    {
                String inputString 
    = "{/root/ID}:{/root/Name}";  //使用{}为转义
               
                Regex r;
                Match m;

                r 
    = new Regex("(?:{(?<1>[^}]*)})",
                    RegexOptions.IgnoreCase 
    | RegexOptions.Compiled);
                
    for (m = r.Match(inputString); m.Success; m = m.NextMatch())
                
    {
                    Console.WriteLine(
    "Found matchs : " + m.Groups[1+ " at "
                        
    + m.Groups[1].Index);
                }

            }



    运行结果如下:




    有待改进的地方:
    这是一个使用单个字符{和}来分隔的,如果要是使用多个字符,比如<XPath>/root/ID</XPath>,不知道该如何写?

    我看到这里好像有不少正则表达式的高手,不妨教教我,呵呵。

    为了满足需求,
    我们后来使用了正则表达式另外一个好用的功能:Split

    只要使用这个就可以把字符串拆成一个字符数组:
    string[] sXPath = r.Split(inputString);

    并且,所有的偶数位置的就是匹配出来的,就算2个表达式之间没有任何字符,也会在中间插入一个空的字符占位,这样,只要计算偶数位置的XPath就好了。
    看看数组里面的内容:


  • 相关阅读:
    Linux系统的vi命令
    log4j.properties配置详解与实例
    Jsp获取Java的重定向赋值(String)
    Jsp获取Java的对象(JavaBean)
    JS中怎么调用<%%>的值
    Java获取请求客户端的真实IP地址
    servlet+jsp+java实现Web应用
    Linux系统安装telnet以及xinetd服务
    The R Project for Statistical Computing
    【Python环境】matplotlib
  • 原文地址:https://www.cnblogs.com/cleo/p/363622.html
Copyright © 2020-2023  润新知