加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 有没有可能的方法来匹配第n个字符?

发布时间:2020-12-14 05:37:47 所属栏目:百科 来源:网络整理
导读:参见英文答案 How can I extract the nth occurrence of a match in a Perl regex?????????????????????????????????????7个 我的输入数据如下.我想把这个词分组在 – 的第6和第7位之间. my $sa = "a1a1a1-b1b1b1-c-ddd-eee-fff-gggggg-hHhH-iiii-j-KKKKK";
参见英文答案 > How can I extract the nth occurrence of a match in a Perl regex?????????????????????????????????????7个
我的输入数据如下.我想把这个词分组在 – 的第6和第7位之间.

my $sa = "a1a1a1-b1b1b1-c-ddd-eee-fff-gggggg-hHhH-iiii-j-KKKKK";

为此,实际的正则表达式是

/[^-]+-[^-]+-[^-]+-[^-]+-[^-]+-([^-]+)-/

为了构建正则表达式,我尝试如下,

my $avc = "[^-]+-" x 5 . "([^-]+)-";

my $ar = qr"$avc";

$sa =~m/$ar/g;

print $1;

我怀疑,正则表达式中是否有任何选项可用.不使用x.我怎么能在一个正则表达式中做到这一点?

解决方法

使用 limiting repetition quantifier

/(?:[^-]+-){5}([^-]+)-/

Regex explanation here.

捕获组可以在重复组内,只有最后一个被捕获.

/(?:([^-]+)-){6}/

Regex explanation here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读