您好,我试图通过正则表达式匹配两个值两个条件,但不能做到。
字符串
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"祝辞Sweet"使用正则表达式。下面是一个应该工作的正则表达式示例:
gets((d+),);inc();.*for="([^"]+)"
这个正则表达式有两个捕获组:
- ( d +)捕获中的一个或多个数字gets()函数。
- "([^"]+)">为捕获中的一个或多个字符属性,不包括双引号。
下面是一个示例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