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)