Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式更正匹配,但不应替换_Regex_Autohotkey - Fatal编程技术网

Regex 使用正则表达式更正匹配,但不应替换

Regex 使用正则表达式更正匹配,但不应替换,regex,autohotkey,Regex,Autohotkey,我必须抓住里面的一切 \u这是我希望匹配的一个示例您似乎将术语替换(基于正则表达式的替换操作)和捕获(将捕获的匹配值的一部分存储在一个模式的一部分中,该模式的一部分用一对未替换的圆括号括在一个编号或命名的堆栈中)混合在一起 如果您想在特定上下文中匹配子串而不捕获任何子值,则可以考虑使用(查找或前瞻)。 在您的例子中,由于您需要在某个已知字符串之后匹配一个字符串,因此需要查找。lookback告诉正则表达式引擎在字符串中暂时后退,以检查lookback中的文本是否可以在那里匹配 所以,你可以使用

我必须抓住里面的一切

\u这是我希望匹配的一个示例您似乎将术语替换(基于正则表达式的替换操作)和捕获(将捕获的匹配值的一部分存储在一个模式的一部分中,该模式的一部分用一对未替换的圆括号括在一个编号或命名的堆栈中)混合在一起

如果您想在特定上下文中匹配子串而不捕获任何子值,则可以考虑使用(查找或前瞻)。 在您的例子中,由于您需要在某个已知字符串之后匹配一个字符串,因此需要查找。lookback告诉正则表达式引擎在字符串中暂时后退,以检查lookback中的文本是否可以在那里匹配

所以,你可以使用

pos := RegExMatch(input, "(?<=<autorpodpis>)\p{L}+(?:\s+\p{L}+)*", Res)
然后
Res[1]
将保存
WOJCIECH ZAŁUSKA
值。在大多数情况下,捕获速度更快(96%)


现在,您的正则表达式-
([^;,尝试
pos:=RegExMatch(input,“(\p{L}+(?:\s+\p{L}+)*”),Res)
,结果应该是
Res[1]
。是的,它实现了这个技巧,但它使用了替换–
Res[1]
是它的一种形式。是否有可能只获得
Res
?是否将术语替换与捕获混合在一起?尝试
pos:=RegExMatch(输入,“(?是的,我知道。谢谢你指出不同之处。另外:你的答案和我的初始答案一样正确。我看到你已经编辑了你的答案。请将其作为答案提供。什么是最好的(比如说,最快,更优):你的第一个答案还是第二个?我想我的第一个正则表达式比你的最差。是的,我想,如果你对一个有回望的答案不感兴趣,你可以删除你的帖子。
pos := RegExMatch(input, "(?<=<autorpodpis>)\p{L}+(?:\s+\p{L}+)*", Res)
pos := RegExMatch(input, "<autorpodpis>(\p{L}+(?:\s+\p{L}+)*)", Res)