【发布时间】:2011-09-14 18:49:39
【问题描述】:
我正在使用这个 /\{\$?([^# ]+)\#?([^ ]+)? ?([^|]+)?[ \|]?([^\}]+)?\}/
perl 兼容的正则表达式
用于匹配字符串,例如:{$string#asdf#asdf can you hear me? |ucfirst|strtoupper}
输出这个:
Array
(
[0] => {$string#asdf#asdf can you hear me? |ucfirst|strtoupper}
[1] => string
[2] => asdf#asdf
[3] => can you hear me?
[4] => ucfirst|strtoupper
)
如果与PHP's preg_replace_callback 函数一起使用,
但使用像{$string#asdf#asdf can you hear me? ucfirst|strtoupper} 这样的字符串,它会输出这个:
Array
(
[0] => {$string#asdf#asdf can you hear me? ucfirst|strtoupper}
[1] => string
[2] => asdf#asdf
[3] => can you hear me? ucfirst
[4] => strtoupper
)
你能按照你希望的方式改进它,以便它能够匹配如下字符串:{$string#asdf#asdf can you hear me? ucfirst|strtoupper}(注意:“|”在 ucfirst 前面被删除)而不影响数组的结果。
(即输出应该和上面第一个打印的数组一样)
【问题讨论】:
标签: regex