我正在使用此/\{\$?([^# ]+)\#?([^ ]+)? ?([^|]+)?[ \|]?([^\}]+)?\}/
与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前删除“|”)而不影响数组的结果。
(即输出应与上面第一个打印的数组相同)
答案 0 :(得分:0)
此正则表达式字符串已匹配您提供的两个样本。你在这里问的是什么?
答案 1 :(得分:0)
不清楚你到底想要什么,但这是我根据你指定的最佳猜测:
{\$([^#]*)#(\S*) (.*?) (\S*)}
这将为比赛1-4提供以下内容
在示例中
{$string#asdf#asdf can you hear me? ucfirst|strtoupper}
我们有: