我有一个脚本,我需要从文本字符串中获取三个部分,并将它们返回到数组中。经过几次尝试和失败后,我无法让它工作。
文本字符串可以如下所示:
Some place Some place (often text in parenthesis) Some place (often text in parenthesis) [even text in brackets sometimes]
我需要将这些字符串分成三个:
{Some place} ({often text in parenthesis}) [{even text i brackets sometimes}]
应该返回:
1: Some place 2: often text in parenthesis 3: even text in brackets sometimes
我知道这应该是一项简单的任务,但我无法解决正确的正则表达式。这将在 PHP 中使用。
提前致谢!
最佳答案
尝试这样的事情:
$result = preg_match('/
^ ([^(]+?)
(\s* \( ([^)]++) \))?
(\s* \[ ([^\]]++) \])?
\s*
$/x', $mystring, $matches);
print_r($matches);
请注意,在此示例中,您可能对 $matches[1]、$matches[3] 和 $matches[5] 最感兴趣。
关于php - 匹配单词,然后匹配潜在的括号字符串,然后匹配潜在的方括号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/645683/