正则表达式匹配字符串php中的两个值

aiqt4smr  于 2023-04-04  发布在  PHP
关注(0)|答案(2)|浏览(139)

我想通过正则表达式来匹配两个值,但是不能做到。
字符串是

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

输出尝试是数组

[
  183,
  "Sweet"
]

PHP正则表达式代码

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

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
)
eagi6jfj

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

相关问题