PHP查找字符串和以下未知字符
我还在学习PHP正则表达式,所以我希望有人能帮助我完成我想要完成的任务PHP查找字符串和以下未知字符,php,regex,Php,Regex,我还在学习PHP正则表达式,所以我希望有人能帮助我完成我想要完成的任务 $string = 'Writing to tell you that var MyCode = "dentline"; Learn it.'; 我要做的是匹配字符串中读取的部分 var MyCode =" 匹配该部分后,我希望检索该字符串后面动态生成的其余字符。在本例中,[dentline]是8个字符,但情况可能并非总是如此。因此,我想一路比赛,直到我到达终点 "; 在我有效地捕获了字符串的这一部分之后,我想剥离字符
$string = 'Writing to tell you that var MyCode = "dentline"; Learn it.';
我要做的是匹配字符串中读取的部分
var MyCode ="
匹配该部分后,我希望检索该字符串后面动态生成的其余字符。在本例中,[dentline]是8个字符,但情况可能并非总是如此。因此,我想一路比赛,直到我到达终点
";
在我有效地捕获了字符串的这一部分之后,我想剥离字符串,这样剩下的信息就是双引号之间的内容
dentline
非常感谢您的帮助 试试这个:
$string = 'Writing to tell you that var MyCode = "dentline"; Learn it.';
$matches = array();
preg_match('/var MyCode = "(.*?)";/', $string, $matches);
echo $matches[1];
结果:
dentline
解释
var MyCode = " Match this string literally and exactly
( Start a capturing group.
.*? Match any characters, as few as possible (not greedy)
) End the capturing group.
"; Match the closing double quote followed by a semi-colon
在这个表达式中,\w
表示“匹配任何单词字符”。您可能还希望使用\s+
而不是空格,以便可以匹配一个或多个空白字符(以及制表符和新行)。类似地,\s*
匹配零个或多个空格。因此,您可以尝试的另一种可能性是:
preg_match('/var\s+\w+\s*=\s*"(.*?)"\s*;/', $string, $matches);
您的字符串是否总是双引号,而不是单引号?您的字符串是否可以包含转义引号?在代码中空格是否重要?变量名总是“MyCode”还是可以是其他名称?字符串总是双引号。没有转义字符,没有空格,变量名没有更改。就这样。太棒了,谢谢!你能提供更多的信息来说明这是如何工作的以及为什么工作的吗。谢谢
preg_match('/var\s+\w+\s*=\s*"(.*?)"\s*;/', $string, $matches);