Regex匹配字符串php中的两个值



您好,我试图通过正则表达式匹配两个值两个条件,但不能做到。

字符串

MorText "gets(183,);inc();" for="text">Sweet" Mo

输出尝试数组

[
183,
"Sweet"
]

php regex代码

preg_match_all('/gets((.*?),|>(.*?)"/', $string, $matches);

要实现您想要的输出,您可以使用:

/gets((d+),.*?>(.*?)"/

PHP-Example:

$string = 'MorText "gets(183,);inc();" for="text">Sweet" Mo';
preg_match_all('/gets((d+),.*?>(.*?)"/', $string, $matches);

print_r(array_merge($matches[1],$matches[2]));

输出:

Array
(
[0] => 183
[1] => Sweet
)

如果我理解正确的话,您想要匹配字符串"gets(183,);inc();"为="text&quot祝辞Sweet"使用正则表达式。下面是一个应该工作的正则表达式示例:

gets((d+),);inc();.*for="([^"]+)"

这个正则表达式有两个捕获组:

  1. ( d +)捕获中的一个或多个数字gets()函数。
  2. "([^"]+)">为捕获中的一个或多个字符属性,不包括双引号。

下面是一个示例PHP代码,使用这个正则表达式并提取值:

$string = 'gets(183,);inc(); for="text">Sweet';
$pattern = '/gets((d+),);inc();.*for="([^"]+)"/';
if (preg_match($pattern, $string, $matches)) {
$number = $matches[1]; // Captured value inside gets() function
$text = $matches[2]; // Captured value inside the for attribute
echo "Number: $numbern";
echo "Text: $textn";
} else {
echo "No match found.n";
}

这段代码将输出:

Number: 183
Text: text

相关内容

  • 没有找到相关文章

最新更新