如何在爆炸和正则表达式之间进行选择

时间:2012-03-11 17:37:08

标签: php regex parsing explode

我的字符串是包含[hotkey]形式的一些“热键”。例如:

"This is a sample string [red] [h1]"

当我用php函数处理这个字符串时,我想函数输出原始字符串,如下所示;

<font color='red'><h1>This is a sample string</h1></font>

我想使用此功能纯粹是为了方便一些打字。我可以使用字体标签或div或其他什么,让我们不要进入。关键是这个;热键将导致原始字符串被包装到

<something here>original string<and something there>

因此该函数首先需要确定是否有任何热键。这很简单;只需检查是否存在[

然后我们需要处理字符串以确定存在哪些热键,并进入关于要部署哪些包装器的biz逻辑。

最后我们将不得不从热键中清除原始字符串并返回结果。

我的问题是,是否有一个正则表达式可以使这个更有效地发生,然后我计划实现该函数的以下解析方法。

第1步 使用[分隔符

将字符串分解为数组

第2步 通过每个数组元素来查看是否存在结束]并且它形成一个已定义的热键,如果是,则执行必要的操作。

显然,这种方法不使用任何正则表达式。我想知道正则表达式在这里是否有帮助。或者,你可能建议做任何更好的方法吗?

2 个答案:

答案 0 :(得分:0)

如果[]是唯一需要担心的分隔符,则可以使用strtok

答案 1 :(得分:0)

我不会说英语,但我看到了你的例子:

"This is a sample string [red] [h1]"

<font color='red'><h1>This is a sample string</h1></font>

如果我是你:

$red = substr( $chaine, strpos($chaine, '['), strpos($chaine, ']') );