繁体   English   中英

自动热键正则表达式排除字符串的一部分

[英]Autohotkey regex exclude part of string

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

GSM NWS \\ TOP N池1 \\ 1。 前N名池1排名:

GSM NWS \\ TOP N池1 \\ 1。 BCCH前N个池1:

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

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

  1. BCCH
  2. BSIC

我已经讨论这个问题已经有一段时间了,并且我已经使用了RegExMatch:

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

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

有任何想法吗?

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

谢谢你们。

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

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

括号中的部分捕获文本,之后可以使用$1$2等。这里$1(\\d\\.)捕获对象,例如: 1. .和$2表示(\\w+)捕获捕获Rank 因此,我想(因为我没有AHK背景),您应该可以执行以下操作:

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

结果应该是: 1.Rank

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM