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

Autohotkey regex exclude part of string

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

GSM NWS\TOP N Pool 1. TOP N Pool 1 Rank :

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

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

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

  1. 排名
  2. BCCH
  3. BSIC

我已经解决这个问题很久了,而且我使用了 RegExMatch:

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

此 RegEx 不排除我要省略的中间字符串。

有什么想法吗?

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

谢谢大家

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

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

括号中的部分捕获文本,您可以在之后使用,使用 </code>、<code> 等。这里 </code> 用于 <code>(\d\.),例如捕获: 1.(\w+)</code> 应该捕获 <code>Rank。所以我想(因为我没有 AHK 的背景)你应该能够做这样的事情:

NewStr := RegExReplace("GSM NWS\TOP N Pool 1. TOP N Pool 1 Rank :", "(\d\.).+\d\s(\w+)\s:", "")

结果应该是:1.Rank

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