@poniyur

Не получается добить регулярное выражение?

Написал регулярку

https://regex101.com/r/qGucnQ/4
Справа, в MATCH INFORMATION видно, что регулярка захватывает Full match и Group 1.

Так вот, я бы хотел написать регулярку, которая бы ловила только то, что сейчас попадает в Group1.
Пытался по всякому, например:

<w:p>.*?zxc.*?<w:p>
Слева захватывается слишком много, нужен не первый входящий <w:p>, а последний, но никак не могу придумать, как это организовать
У кого-нибудь есть идеи?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
$text = '<w:document xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" mc:ignorable="w14 wp14"><w:body><w:tbl><w:tblpr><w:tblw w:w="10916" w:type="dxa"><w:jc w:val="left"><w:tblind w:w="53" w:type="dxa"><w:tblborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tblborders><w:tblcellmar><w:top w:w="55" w:type="dxa"><w:left w:w="51" w:type="dxa"><w:bottom w:w="55" w:type="dxa"><w:right w:w="55" w:type="dxa"></w:right></w:bottom></w:left></w:top></w:tblcellmar></w:tblind></w:jc></w:tblw></w:tblpr><w:tblgrid><w:gridcol w:w="5458"><w:gridcol w:w="5457"></w:gridcol></w:gridcol></w:tblgrid><w:tr><w:trpr></w:trpr><w:tc><w:tcpr><w:tcw w:w="5458" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>123</w:t></w:r></w:p></w:tc><w:tc><w:tcpr><w:tcw w:w="5457" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:right w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insidev w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insidev></w:insideh></w:right></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>1231</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:trpr></w:trpr><w:tc><w:tcpr><w:tcw w:w="5458" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>123</w:t></w:r></w:p></w:tc><w:tc><w:tcpr><w:tcw w:w="5457" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:right w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insidev w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insidev></w:insideh></w:right></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>23</w:t></w:r></w:p></w:tc></w:tr></w:tbl><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>{{qwe}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>{{</w:t></w:r><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:bcs></w:b></w:rpr><w:t>asd</w:t></w:r><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:bcs></w:b></w:rpr><w:t>{{zxc}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:lang w:val="en-US"></w:lang></w:bcs></w:b></w:rpr><w:t>{{check4}}</w:t></w:r></w:p><w:sectpr><w:footerreference w:type="default" r:id="rId2"><w:type w:val="nextPage"><w:pgsz w:w="11906" w:h="16838"><w:pgmar w:left="567" w:right="423" w:header="0" w:top="1077" w:footer="709" w:bottom="1259" w:gutter="0"><w:pgnumtype w:fmt="decimal"><w:formprot w:val="false"><w:textdirection w:val="lrTb"><w:docgrid w:type="default" w:linepitch="360" w:charspace="0"></w:docgrid></w:textdirection></w:formprot></w:pgnumtype></w:pgmar></w:pgsz></w:type></w:footerreference></w:sectpr></w:body></w:document>';
$regex = "/.*(<w:p>.*{{zxc}}.*?<\/w:p>)/";
$m = [];

preg_match($regex, $text, $m);
echo $m[1];

https://regex101.com/r/qGucnQ/9 <-- та же самая регулярка, она норм работает.

P.S. В Full Match попадает всё то, что соответствует вообще регулярке, но запоминается только то, что попадает в Group 1.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы