通过正则表达式(php)获取值的帮助

通过正则表达式(php)获取值的帮助,php,regex,Php,Regex,所以,是的,我对正则表达式很差劲。需要用php来完成。谢谢 我需要能够拉出“xx”(将始终是2个小写字母字符)和“a12”(可以是任何东西,但将始终是.php) 确保您正在捕获匹配项。xx将在第1组,a12将在第2组 祝你好运 由于他正在寻找一个PHP解决方案,而不仅仅是PCRE,我认为这样的解决方案可能更全面一些: $src = 'http://foo.bar.com/some_directory/xx/a12.php?whatever=youwant'; preg_match( '/([a-

所以,是的,我对正则表达式很差劲。需要用php来完成。谢谢 我需要能够拉出“xx”(将始终是2个小写字母字符)和“a12”(可以是任何东西,但将始终是.php)

确保您正在捕获匹配项。xx将在第1组,a12将在第2组


祝你好运

由于他正在寻找一个PHP解决方案,而不仅仅是PCRE,我认为这样的解决方案可能更全面一些:

$src = 'http://foo.bar.com/some_directory/xx/a12.php?whatever=youwant';
preg_match( '/([a-z]{2})\/([^\/]+)\.php/', $src, $matches );
/* grab "xx" */
$first = $matches[1];
/* grab "a12" */
$second = $matches[2];

我认为在结尾使用+而不是*是完全合理的-这是对虚假数据的额外检查,因为它确保文件名不仅仅是一个扩展名。这两种方法都可以,但没有理由不进行额外的验证。请注意,到目前为止,一些响应似乎无意中忘记在其正则表达式中转义一个或两个正斜杠,因此无论哪个答案适合您,请务必仔细检查,否则PHP可能会对未知的修饰符之类的内容抛出垃圾。干杯我选择这个是因为它是唯一一个在运行时没有出错的。我还发现添加一些\u目录\/来确保我有一个有效的匹配项是很有帮助的。打得好。我在xx/a12.php片段上看到了隧道式的视觉效果,甚至没有考虑字符串的其余部分——当然,您可以将其构建到正则表达式中,或者事先进行一些验证,就像(strpos($src,)==0){//regex stuff}或者{//error stuff}
"([a-z]{2})\/([^/]+)\.php"
$string = http://foo.bar.com/some_directory/xx/a12.php?whatever=youwant


$matches;
preg_match("/([a-z]{2})/([a-zA-Z0-9_\-]+)", $string, $matches);

$part_1 = $matches[1]; //xx
$part_2 = $matches[2]; //a12
$src = 'http://foo.bar.com/some_directory/xx/a12.php?whatever=youwant';
preg_match( '/([a-z]{2})\/([^\/]+)\.php/', $src, $matches );
/* grab "xx" */
$first = $matches[1];
/* grab "a12" */
$second = $matches[2];