我对正则表达式很穷,但对于了解正则表达式的人来说,这应该非常简单。所以如果字符串包含<if> <else>
,它将该字符串转换成两个部分,并返回<if>
和<else>
后两个字符串用正则表达式分割包含<if><else>的字符串与正则表达式
<if>abc <else>xyz
我想一个正则表达式:
基本上我都会有这样的字符串。在上面的例子中,它可能会返回一个数组,其第一个元素为abc
,第二个为xyz
。我很乐意接近不使用正则表达式。
有什么想法?
我对正则表达式很穷,但对于了解正则表达式的人来说,这应该非常简单。所以如果字符串包含<if> <else>
,它将该字符串转换成两个部分,并返回<if>
和<else>
后两个字符串用正则表达式分割包含<if><else>的字符串与正则表达式
<if>abc <else>xyz
我想一个正则表达式:
基本上我都会有这样的字符串。在上面的例子中,它可能会返回一个数组,其第一个元素为abc
,第二个为xyz
。我很乐意接近不使用正则表达式。
有什么想法?
// $subject is you variable containing string you want to run regex on
$result = preg_match('/<if>(.*)<else>(.*)/i', $subject, $matches);
// $matches[0] has the full matched text
// $matches[1] has if part
// $matches[2] has else part
的/i
末使搜索区分大小写,同时允许<if><else>
和<IF> <elSE>
你正在寻找的正则表达式为:
/<if>(.*)<\/else>(.*)/
你就会有一个问题,如果有多个<else>
的,虽然。它可以根据你想要的结果进行编辑。
另请注意,即使在<if>
之前有某些内容,此正则表达式也可以正常工作。
在PHP中,你会想要像下面这样的代码:
<?php
$string = '<if>abc</else>xyz';
preg_match_all("/<if>(.*)<\/else>(.*)/", $string, $matches);
foreach($matches[0] as $value)
{
echo $value;
}
?>
正则表达式会在简单情况下为此工作。对于更复杂的情况(发生嵌套),您可能会发现解析字符串更简单,并使用简单堆栈来获取所需的数据。
你必须逃离`/`附近其他 – RaYell 2009-07-28 16:51:43
对不起,错过了。编辑。 – 2009-07-28 16:56:23