php 正则第一个,为什么这个正则表达式与php中的第一个结果不匹配?

这是我的正则表达式:

❰(❮\d+[\-\d]*❯)⦓([^⦔]*)⦔❱

Nullaimperdiet❰❮6❯⦓“Lorem ipsum dolor sit amet,consectetur adipiscing elit . Suspendisse gravida consectetur mauris,eget ornare velitconsequatvitae.⦔❱❰❮7❯⦓Morbiinquam id nulla facilisis vestibulum sit amet ornare est.Duis dolor erat,porttitor at eleifend congue,lacinia vitae est.Chasellus ac sem ut velit fermentum porta at sitametneque.⦔❱❰❮8❯⦓Etiamin congue turpis . Cras volutpat est mauris . Nulla imperdiet libero vitae metus semper,坐在amet dictum lectus placerat . Aenean atvenenatislibero.⦔❱❰❮9-10❯⦓Aeneanluctusat nibh eget scelerisque . Phasellus vel consequat dui,eu euismod lacus . Nam id tellus tincidunt,tristique quam eu,cursus nulla . Suspendisse ac nibh lacinia,tempus enim quis,elementum nulla . . ⦔❱euismod .

但它在PHP中不起作用 . 也就是说,它不会检索第一场比赛:即,从 ❰❮6❯⦓“ 到 vitae.⦔❱ . 有趣的是,如果我删除Unicode双引号charterer(“),它工作正常,但添加它,使它不匹配第一个匹配 . 为什么是这样?如何避免这种情况?

正则表达式的说明:我想匹配 ⦓ 和 ⦔ 之间的内容,如果它们是 ❮ 和 ❯ 之间排除数字内容的唯一内容 .

匹配示例:

❰❮6❯⦓Loreminsumdolor坐下来,精神上的精英 . Suspendisse gravida consectetur mauris,eget ornare velit consequat vitae .

不匹配的示例:

❰❮6❯⦓Loremipsum dolor sit amet,consectetur adipiscingelit.⦔Fuspendissegravida consectetur mauris,eget ornare velit consequatvitae.❱

我的PHP代码:

$subject = "Nulla imperdiet ❰❮6❯⦓“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse gravida consectetur mauris,

eget ornare velit consequat vitae.⦔❱❰❮7❯⦓Morbi in quam id nulla facilisis vestibulum sit amet ornare est. Duis dolor erat,

porttitor at eleifend congue, lacinia vitae est. Phasellus ac sem ut velit fermentum porta at sit amet neque.⦔❱❰❮8❯⦓Etiam in congue turpis.

Cras volutpat est mauris. Nulla imperdiet libero vitae metus semper, sit amet dictum lectus placerat. Aenean at venenatis libero.⦔❱❰❮9-10❯⦓Aenean

luctus at nibh eget scelerisque. Phasellus vel consequat dui, eu euismod lacus. Nam id tellus tincidunt, tristique quam eu,

cursus nulla. Suspendisse ac nibh lacinia, tempus enim quis, elementum nulla. .⦔❱ eu euismod.";

$pattern = '#❰(❮\d+[\-\d]*❯)⦓([^⦔]*)⦔❱#';

preg_match_all($pattern, $subject, $matches);

echo '

';

print_r($matches);

echo '

';

?>

输出:

Array

(

[0] => Array

(

[0] => ❰❮7❯⦓Morbi in quam id nulla facilisis vestibulum sit amet ornare est. Duis dolor erat,

porttitor at eleifend congue, lacinia vitae est. Phasellus ac sem ut velit fermentum porta at sit amet neque.⦔❱

[1] => ❰❮8❯⦓Etiam in congue turpis.

Cras volutpat est mauris. Nulla imperdiet libero vitae metus semper, sit amet dictum lectus placerat. Aenean at venenatis libero.⦔❱

[2] => ❰❮9-10❯⦓Aenean

luctus at nibh eget scelerisque. Phasellus vel consequat dui, eu euismod lacus. Nam id tellus tincidunt, tristique quam eu,

cursus nulla. Suspendisse ac nibh lacinia, tempus enim quis, elementum nulla. .⦔❱

)

[1] => Array

(

[0] => ❮7❯

[1] => ❮8❯

[2] => ❮9-10❯

)

[2] => Array

(

[0] => Morbi in quam id nulla facilisis vestibulum sit amet ornare est. Duis dolor erat,

porttitor at eleifend congue, lacinia vitae est. Phasellus ac sem ut velit fermentum porta at sit amet neque.

[1] => Etiam in congue turpis.

Cras volutpat est mauris. Nulla imperdiet libero vitae metus semper, sit amet dictum lectus placerat. Aenean at venenatis libero.

[2] => Aenean

luctus at nibh eget scelerisque. Phasellus vel consequat dui, eu euismod lacus. Nam id tellus tincidunt, tristique quam eu,

cursus nulla. Suspendisse ac nibh lacinia, tempus enim quis, elementum nulla. .

)

)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值