使用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
"部分。因此,想要的字符串应该是:
我已经有很长一段时间了解这个问题,而且我已经使用了RegExMatch:
RegExMatch(A_LoopField, "\d+\.(.*?)\[\d\]", fields%lineCount%)
此RegEx不排除我想遗漏的中间字符串。
有什么想法吗?
P.S:我对这种语言比较陌生,对正则表达式的用法也是如此......如果我在这里犯了任何基本错误,请原谅。
谢谢大家。
答案 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