zoukankan      html  css  js  c++  java
  • 一个简单的正则表达式应用,正则匹配选出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就好了。
    看看数组里面的内容:


  • 相关阅读:
    js类型转换的坑
    JS自动填写分号导致的坑
    tomcat+javaWeb+spring的一个都市供求管理系统
    java学习笔记--java中的基本数组[5]
    mysql基础语法及拓展到web中的sql注入
    angular指令大全
    在chrome下-webkit-box布局的一个bug
    use redis instance in docker hub
    centos yum install oracle java
    认识Debian
  • 原文地址:https://www.cnblogs.com/cleo/p/363622.html
Copyright © 2011-2022 走看看