regex - 匹配给定字符的文本,但不包括 Perl 中单引号内出现的字符

标签 regex perl

我正在尝试从字符串中提取文本直到下一次出现 /,不计算单引号内出现的斜杠。例如

my $str="test 'a/b' c/ xxx /";
$str =~ /(.*?)\//;
print "$1\n";

给予

test 'a

而我想得到:

test 'a/b' c

最佳答案

你可以试试这个:

$str =~ /^((?>[^'\/]+|'[^']*')*)\//;

关于regex - 匹配给定字符的文本,但不包括 Perl 中单引号内出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22850643/

相关文章:

linux - 在调试 perl 代码期间修改变量的值

perl - 为什么在我尝试安装 GD::Polygon 时得到 "Could not find gdlib-config in the search path",即使安装了 gdlib-config?

jquery - 从 Jquery 字符串中删除第一个数字

JavaScript 正则表达式

javascript - 使用正则表达式进行一元运算符拆分

perl - 使用 'cpan' 安装 Perl 模块时如何避免 sudo-ing ?

perl - 为什么 Perl 通过 grep 创建一个空数组引用?

regex - 使用 list.files 只列出文件而不列出目录

javascript - 正则表达式忽略闭花括号和分号

perl - 如何使用 CGI.pm 获取整个请求正文?