作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 preg_replace() 进行一些字符串替换。
$str = "<aa>Let's find the stuff qwe in between <id>12345</id> these two previous brackets</h>";
$do = preg_match("/qwe(.*)12345/", $str, $matches);
运行良好并给出以下结果
$match[0]=qwe in between 12345$match[1]=in between
but I am using same logic to extract from the following string.
<text>
<src><![CDATA[<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial" SIZE="36" COLOR="#999999" LETTERSPACING="0" KERNING="0">r1 text 1 </FONT></P></TEXTFORMAT>]]></src>
<width>45%</width>
<height>12%</height>
<left>30.416666666666668%</left>
<top>3.0416666666666665%</top>
<begin>2s</begin>
<dur>10s</dur>
<transIn>fadeIn</transIn>
<transOut>fadeOut</transOut>
<id>E2159292994B083ACA7ABC7799BBEF3F7198FFA2</id>
</text>
我想从中提取字符串
r1text1
到
</id>
我目前的正则表达式是:
preg_match('/r1text1(.*)</id\>/', $metadata], $matches);
其中 $metadata 是上面的字符串..
$matches 不返回任何东西....出于某种原因...我该怎么做?提前致谢
最佳答案
如果你想提取文本,你可能想使用 preg_match
.以下可能有效:
preg_match('#\<P[^\>]*\>\<FONT[^\>]*\>(.*\</id\>)#', $string, $matches)
括号中匹配的任何内容都可以稍后在 $matches
中找到大批。在这种情况下,介于 <P>
之间的所有内容标签后跟 <FONT>
标记和 </id>
,包括后者。
以上正则表达式未经测试,但可能会让您大致了解如何进行测试。如果您的需求有所不同,请进行调整 :)
关于php - 如何在php中提取字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/736889/
我是一名优秀的程序员,十分优秀!