gpt4 book ai didi

regex - 捕获两个字符之间的子字符串?

转载 作者:行者123 更新时间:2023-12-02 08:06:25 25 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式模式,它将捕获两个字符之间的子字符串。字符串是

default_checks/my_checks/VLG6.3: Unsupported system function call

我需要捕获 VLG6.3。它位于斜杠 / 和冒号 : 之间。

我已经尝试过这些想法

my $rule = $line =~ /\/(.*)\:/;
my $rule = $line =~ /\/(.+?)\:/ ;
my $rule = $line =~ /\/(\w+)\:/ ; 

但是它们都不起作用。在最好的情况下,我得到 my_checks/VLG6.3

最佳答案

除了 ikegami 很有帮助地指出的将列表分配给标量的问题之外,正则表达式模式还可以进行一些修复。

正则表达式中的转发器 * 是贪婪的。只要匹配,它就会吞噬尽可能多的字符。您需要让另一个中继器预先进行吞噬,以便它只为您真正想要匹配的中继器留下足够的空间。

my ($rule) = $line =~ /.*\/(.*):/;

或者,在这种情况下,您可以只使用排除类而不是匹配任何字符。

my ($rule) = $line =~ /\/([^\/]*):/;

以上两个都将以 $rule 分配 'VLG6.3' 结束。

关于regex - 捕获两个字符之间的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51110725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com