[英]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
”部分。 因此,所需的字符串应为:
我已经讨论这个问题已经有一段时间了,并且我已经使用了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.