Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 帮助我改进现有的正则表达式代码_Regex - Fatal编程技术网

Regex 帮助我改进现有的正则表达式代码

Regex 帮助我改进现有的正则表达式代码,regex,Regex,我正在使用这个与/\{$?[^]+\?[^]+?[^ |]+?[\\\\\]?[^\}]+?\}/perl兼容的正则表达式来匹配字符串,例如: {$stringasdfasdf你能听到我说话吗?| ucfirst | strtoupper} 输出此文件: Array ( [0] => {$string#asdf#asdf can you hear me? |ucfirst|strtoupper} [1] => string [2] => asdf#asd

我正在使用这个与/\{$?[^]+\?[^]+?[^ |]+?[\\\\\]?[^\}]+?\}/perl兼容的正则表达式来匹配字符串,例如: {$stringasdfasdf你能听到我说话吗?| 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
)
Array
(
    [0] => {$string#asdf#asdf can you hear me? ucfirst|strtoupper}
    [1] => string
    [2] => asdf#asdf
    [3] => can you hear me? ucfirst
    [4] => strtoupper
)
如果与PHP的preg_replace_回调函数一起使用

但是像{$stringasdfasdf你能听到我说话吗?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
)
Array
(
    [0] => {$string#asdf#asdf can you hear me? ucfirst|strtoupper}
    [1] => string
    [2] => asdf#asdf
    [3] => can you hear me? ucfirst
    [4] => strtoupper
)
您能否按照自己的意愿对其进行改进,使其能够匹配字符串,如:
{$stringasdfasdf你能听到我说话吗?ucfirst | strtoupper}注意:|在ucfirst前面删除,但不影响数组的结果。ie输出应与上面打印的第一个数组相同

此正则表达式字符串已与您提供的两个示例匹配。你到底在问什么


不清楚您到底想要什么,但根据您指定的内容,以下是我的最佳猜测:

{\$([^#]*)#(\S*) (.*?) (\S*)}
这将为匹配项1-4提供以下内容

一切都到了第一个标志 第一个标志之后和下一个空格之前的所有内容 2和4之间的所有其他内容 不包含空格的最后一个字符串 在这个例子中

{$string#asdf#asdf can you hear me? ucfirst|strtoupper}
我们有:

一串 asdfasdf 你能听到我说话吗? ucfirst | strtoupper
这个截图是什么工具的?我不知道这个工具的名字,但是它非常有用。