zoukankan      html  css  js  c++  java
  • 正则表达式使用索引

    ----------------------------------------------------------------------

    VS中

    例子1: Format 32位多字符集,变成 64位unicode的时候,cstring接受的需要是宽字节字符。需要在“”前加上宏_T()

      //结果应该是这样
    CString mm1; mm1.Format(_T("%d"),1);
      //替换前捕获应该是这样 CString mm2; mm2.Format("%d",2);

    查找内容:
    Format("{.*}"

    替换内容:
    Format(_T("1")

    例子2:

    /** 根据数据类型和名称删除组件数据。*/
    bool deleteComponentData(const std::string& dataType, const std::string& name);

    替换成

    //根据数据类型和名称删除组件数据。
    bool deleteComponentData(const std::string& dataType, const std::string& name);

    在ctrl + H中编写替换公式

    /** {.*}*/
    替换为

    //1

    vs查找替换正则表达式 参考文档:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(VS.REGULAREXPRESSIONBUILDER)&rd=true

     ----------------------------------------------------------------------

    c#中使用

     运用正则表达式检索对应网站的标签值。需要注意的是,提取按照对应分组名称提取需要先匹配,每一行中再按分组名称获取。

    {
      "SrvAddr": "http://c.ishadow.host/",
      "RegexPattern": "<h4>.*?服务器地址:(?<SrvAddr>.*?)</h4>.*?<h4>端口:(?<SrvPort>.*?)</h4>.*?<h4>.*?密码:(?<SrvPass>.*?)</h4>.*?<h4>加密方式:(?<SrvMethod>.*?)</h4>",
    },

     

    protected override void Handle(Page page)
    {
        try
        {
            RegexOptions options = RegexOptions.Singleline;
            MatchCollection regexMatches = Regex.Matches(page.Content, RegexPattern, options);
            Console.WriteLine(regexMatches.Count.ToString());
    
    
            List<SS_Server_Model> results = new List<SS_Server_Model>();
                    
            foreach (Match match in regexMatches)
            {
                results.Add(new SS_Server_Model()
                {
                    SrvAddr = match.Groups["SrvAddr"].Value,
                    SrvPort = match.Groups["SrvPort"].Value,
                    SrvPass = match.Groups["SrvPass"].Value,
                    SrvMethod = match.Groups["SrvMethod"].Value,
                    SrvRemark = match.Groups["SrvRemark"].Value,
                });
            }
    
            page.AddResultItem("results", results);
    
    
            //后续采集网页
            //page.AddTargetRequest(new Request("",null));
        }
        catch (System.Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
                
    }

    --------------------------------------------------------------------------------

    RegexTest 正则表达式工具

    正则中使用分组匹配数据 

    30分钟正则 http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

    (?<name>.*)

    在编程中需要拿到这组数据

    MatchCollection regexMatches = Regex.Matches(page.Content, "(?<name>.*)");
    List<SS_Server_Model> results = new List<SS_Server_Model>();
    foreach (Match match in regexMatches)
    {
        results.Add(new SS_Server_Model() {
            SrvName = match.Groups["name"].Value,
        });
    }

    在替换工具中使用这组符号

    ${name}

  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/Again/p/6387597.html
Copyright © 2011-2022 走看看