我想通过正则表达式来匹配两个值,但是不能做到。字符串是
MorText "gets(183,);inc();" for="text">Sweet" Mo
输出尝试是数组
[ 183, "Sweet" ]
PHP正则表达式代码
preg_match_all('/gets\((.*?)\,|\>(.*?)\"/', $string, $matches);
pnwntuvh1#
要实现您想要的输出,您可以用途:
/gets\((\d+),.*?>(.*?)\"/
PHP-示例:
$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 )
eagi6jfj2#
如果我理解正确的话,您想匹配字符串**“gets(183,)中的两个值;inc();”for=“text”〉Sweet”**使用正则表达式。下面是一个应该工作的正则表达式示例:
gets\((\d+),\);inc\(\);.*for="([^"]+)"
这个正则表达式有两个捕获组:1.(\d+)在gets()函数中捕获一个或多个数字。1."([^"]+)"捕获for属性中的一个或多个字符,不包括双引号。下面是一个使用正则表达式并提取值的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: $number\n"; echo "Text: $text\n"; } else { echo "No match found.\n"; }
此代码将输出:
Number: 183 Text: text
2条答案
按热度按时间pnwntuvh1#
要实现您想要的输出,您可以用途:
PHP-示例:
输出:
eagi6jfj2#
如果我理解正确的话,您想匹配字符串**“gets(183,)中的两个值;inc();”for=“text”〉Sweet”**使用正则表达式。下面是一个应该工作的正则表达式示例:
这个正则表达式有两个捕获组:
1.(\d+)在gets()函数中捕获一个或多个数字。
1."([^"]+)"捕获for属性中的一个或多个字符,不包括双引号。
下面是一个使用正则表达式并提取值的PHP代码示例:
此代码将输出: