Я хочу проанализировать word-xml-файл с регулярным выражением, и мне нужно заменить следующий код на другой.PHP regexp для разбора слова xml
<w:p w:rsidP="001765FC" w:rsidRDefault="00E23FC0" w:rsidR="00EE5514">
<w:sdt>
<w:sdtPr>
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
<w:id w:val="491610033"/>
<w:placeholder>
<w:docPart w:val="A191284B5DB84C2A9DF7CC7D47F0B5AC"/>
</w:placeholder>
<w:temporary/>
<w:showingPlcHdr/>
</w:sdtPr>
<w:sdtEndPr/>
<w:sdtContent>
<w:r w:rsidR="00EE5514" w:rsidRPr="00DC6564">
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>[Стоимость]</w:t>
</w:r>
</w:sdtContent>
</w:sdt>
</w:p>
Я думаю, что можно достичь с помощью регулярных выражений, но я не в состоянии преодолеть узкие места типа RegExp. Я сделал somethins как:
<w:p(.*)>(\s*((.*)\[Стоимость\](.*))\s*)<\/w:p>
https://regex101.com/r/zN9lD0/4
Но это неправильно регулярное выражение. мне нужно найти строку:
<w:p + ANY_TEXT + [TAG_NAME] + ANYTEXT + /w:p>
TAG_NAME является «Стоимость» в моем примере.
Благодаря миллиона – user2455668
Update: https://regex101.com/r/zN9lD0/8 Необходимое отрицательное опережения, для разделения тегов: –
user2455668