如何将其写为正则表达式?

问题描述

| 我有一段代码序列,需要能够快速在几个不同的文件中找到。它具有以下形式:
<?PHP
//{{56541616
其中8位数字可以是任何数字和字母序列。我想使用正则表达式来定位代码,但是我对它们仍然是陌生的,这很复杂,以至于使我不知所措。这是我为正则表达式想到的,但是它似乎不起作用。
\"<\\?/PHP/n//\\{\\{[:alnum:]{8}\"  
关于我做错了什么/实际正则表达式应该有什么建议? 更新:我无法获得任何答案来做我想要的事情。为了对我要执行的操作添加更多说明,有一段代码需要从几个文件删除,以上序列是该代码的开头,需要删除。然后结束是类似的:
//}}18420732
?>
同样,8位代码可以是任何数字+字母序列。我正在尝试将awk与
 /<string1>/,/<string2>/ 
查找介于两者之间的线的范围。因此,例如,使用给出的答案之一和我对第二行的解释,我将其放入命令行中:
awk {/<\\?PHP\\n\\/\\/\\{\\{([:alnum:]{8})/,/\\/\\/\\}\\}([:alnum:]{8})\\n\\?/} index.PHP
我得到这个回应:
-bash: Syntax error near unexpected token `(\'
这是我尝试过的结果的另一个示例。
awk /<\\?PHP\\n\\/\\/\\{\\{[:alnum:]{8}/,/\\/\\/\\}\\}[:alnum:]{8}\\n\\?>/ index.PHP
-bash: ?PHPn//{{[:alnum:]{8}/,///}}[:alnum:]{8}n?/: No such file or directory
有什么建议么?     

解决方法

        尝试一下:
/<\\?php\\s*\\/{2}\\{\\{(\\w{8})/i
    ,        您的正则表达式:   \“ <\\?/ php / n // \\ {\\ {[:alum:] {8} \” 怎么了: 报价-大多数语言中的正则表达式必须以/字符而不是引号开头和结尾。 / PHP之前的不必要使用 在n之前使用/代替\\(用于匹配换行符) 不要转义文字中的/字符,因为这是一个特殊字符 解决方案: / <\\?php \\ n \\ / \\ / \\ {\\ {([:alnum:] {8})/ /字符已转义,n之前的斜杠已更正,并且括号包围\“ [:alnum:] {8} \”部分。这样做是为了使8位代码可以在变量$ 1中捕获,然后可以在代码中使用它。     ,        像这样:
<\\?php\\s\\/\\/\\{\\{[0-9]{8}