php 正则第一个,为什么这个正则表达式与php中的第一个结果不匹配?
這是我的正則表達(dá)式:
?(?\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中不起作用 . 也就是說(shuō),它不會(huì)檢索第一場(chǎng)比賽:即,從 ??6??“ 到 vitae.?? . 有趣的是,如果我刪除Unicode雙引號(hào)charterer(“),它工作正常,但添加它,使它不匹配第一個(gè)匹配 . 為什么是這樣?如何避免這種情況?
正則表達(dá)式的說(shuō)明:我想匹配 ? 和 ? 之間的內(nèi)容,如果它們是 ? 和 ? 之間排除數(shù)字內(nèi)容的唯一內(nèi)容 .
匹配示例:
??6??Loreminsumdolor坐下來(lái),精神上的精英 . 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. .
)
)
總結(jié)
以上是生活随笔為你收集整理的php 正则第一个,为什么这个正则表达式与php中的第一个结果不匹配?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php 中文 decode_php js
- 下一篇: php 覆盖写文件内容,php写入文件不