Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Php 需要帮助将图案移动到行尾吗_Php_Regex_Pcre - Fatal编程技术网

Php 需要帮助将图案移动到行尾吗

Php 需要帮助将图案移动到行尾吗,php,regex,pcre,Php,Regex,Pcre,我一直在用HTML页面上的正则表达式制作自动logcat到sepolicy代码 我的问题是我需要移动{.*}到行尾,我找不到该怎么做 一些例子: 允许{read};恢复rctl\u dumpstate\u道具:文件 其中,{read}需要转到行尾 允许{getattr};恢复组:文件 其中{getattr}需要转到行尾 我从其他人的类似问题中尝试了多个正则表达式 类似于^(.*)({.*?};)(.*)$和replace\1\3\2,但我得到如下输出(奇怪的方块): 而不是我需要的代码。 我需要

我一直在用HTML页面上的正则表达式制作自动logcat到sepolicy代码

我的问题是我需要移动
{.*}到行尾,我找不到该怎么做

一些例子:
允许{read};恢复rctl\u dumpstate\u道具:文件

其中,
{read}需要转到行尾

允许{getattr};恢复组:文件

其中
{getattr}需要转到行尾

我从其他人的类似问题中尝试了多个正则表达式 类似于
^(.*)({.*?};)(.*)$
和replace
\1\3\2
,但我得到如下输出(奇怪的方块):

而不是我需要的代码。 我需要它是PCRE(PHP)。谢谢

这适用于使用Perl正则表达式语法的Python3

重新导入
>>>re.sub('^(.*)({.*?};)(.*)$',r'\1\3\2',allow{read};recovery rctl\u dumpstate\u props:file')
'允许恢复rctl_dumpstate_props:file{read};'

您可能需要对空格进行调整,但其要点是捕获3组(前缀、大括号之间的文本和后缀;然后交换它们的位置。

我猜您没有正确使用
preg\u replace
。尝试一下:

$texts = ['allow { read }; recovery rctl_dumpstate_props:file',
          'allow { getattr }; recovery rcgroups:file'];
foreach ($texts as $str) {
    echo preg_replace('/^(.+?)( { .+? };)(.+)$/', '$1$3$2', $str),"\n";
}
输出:

allow recovery rctl_dumpstate_props:file { read }; 
allow recovery rcgroups:file { getattr }; 

通常,您应该捕获组并交换他们的位置。看看您尝试了什么?什么不起作用?您得到了什么?您期望得到什么?我尝试了搜索:((\w+)(\w+)替换:\3、\2、\1并在stackoverflow上浏览了所有内容,但没有一个答案有效。您使用的是什么语言/工具?并用替换前后的字符串向我们展示您的尝试。好的,我将编辑我需要用html做这件事;;您是说javascript吗?不。php基本代码是logcat=logcat.replace(/regex/gmi,“replace with”);
logcat=logcat.replace(/regex/gmi,“replace with”);
看起来不像PHP。在询问与regex相关的问题时,应该添加一个额外的标记,该标记就是所使用的语言。