Autohotkey正则表达式排除字符串的一部分

时间:2015-07-16 16:37:57

标签: regex string autohotkey

使用Autohotkey,我需要排除字符串的一部分,同时仍然编写它的第一部分和最后部分。 我会解释一下。鉴于字符串:

  

GSM NWS \ TOP N Pool 1 \ 1。 TOP N Pool 1排名:

     

GSM NWS \ TOP N Pool 1 \ 1。 TOP N Pool 1 BCCH:

     

GSM NWS \ TOP N Pool 1 \ 1。 TOP N Pool 1 BSIC:

我只需要从" 1."中提取部分。直到" :",不包括" TOP N Pool 1"部分。因此,想要的字符串应该是:

  1. 等级
  2. BCCH
  3. BSIC
  4. 我已经有很长一段时间了解这个问题,而且我已经使用了RegExMatch:

    RegExMatch(A_LoopField,  "\d+\.(.*?)\[\d\]", fields%lineCount%)
    

    此RegEx不排除我想遗漏的中间字符串。

    有什么想法吗?

    P.S:我对这种语言比较陌生,对正则表达式的用法也是如此......如果我在这里犯了任何基本错误,请原谅。

    谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以使用捕获组,例如正则表达式:

(\d\.).+\d\s(\w+)\s:

括号中的部分使用$1$2等捕获文本,然后您可以使用$1(\d\.)用于1.,例如:$2 1}}和(\w+) Rank应该捕获NewStr := RegExReplace("GSM NWS\TOP N Pool 1\1. TOP N Pool 1 Rank :", "(\d\.).+\d\s(\w+)\s:", "$1$2") 。所以我想(因为我不具备AHK的背景)你应该能够做到这样的事情:

1.Rank

,结果应为:var css = []; for (var i=0; i<document.styleSheets.length; i++) { var sheet = document.styleSheets[i]; var rules = ('cssRules' in sheet)? sheet.cssRules : sheet.rules; if (rules) { css.push('\n/* Stylesheet : '+(sheet.href||'[inline styles]')+' */'); for (var j=0; j<rules.length; j++) { var rule = rules[j]; if ('cssText' in rule) css.push(rule.cssText); else css.push(rule.selectorText+' {\n'+rule.style.cssText+'\n}\n'); } } } var cssInline = css.join('\n')+'\n';

在这里查看正则表达式的工作原理:DEMO