Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_match从字符串捕获ID及其值_Php_Regex_Preg Match_Preg Match All - Fatal编程技术网

Php 使用preg_match从字符串捕获ID及其值

Php 使用preg_match从字符串捕获ID及其值,php,regex,preg-match,preg-match-all,Php,Regex,Preg Match,Preg Match All,我想知道如何创建用于捕捉的preg_match: id=4 4是任意数字,如何在字符串中搜索上述示例 如果这是正确的/^id=[0-9]/,我之所以这样问是因为我对preg\u match不太擅长,因为4是任何数字,我们必须设置它的范围: /^id\=[0-9]+/ \对等号进行转义,数字后面的加号表示1或更多。对于4是任何数字,我们必须为其设置范围: /^id\=[0-9]+/ \对等号进行转义,数字后面的加号表示1或更多。对于4是任何数字,我们必须为其设置范围: /^id\=[0-9]

我想知道如何创建用于捕捉的
preg_match

id=4
4
是任意数字,如何在字符串中搜索上述示例


如果这是正确的
/^id=[0-9]/
,我之所以这样问是因为我对
preg\u match

不太擅长,因为4是任何数字,我们必须设置它的范围:

/^id\=[0-9]+/

\
对等号进行转义,数字后面的加号表示1或更多。

对于4是任何数字,我们必须为其设置范围:

/^id\=[0-9]+/

\
对等号进行转义,数字后面的加号表示1或更多。

对于4是任何数字,我们必须为其设置范围:

/^id\=[0-9]+/

\
对等号进行转义,数字后面的加号表示1或更多。

对于4是任何数字,我们必须为其设置范围:

/^id\=[0-9]+/

\
对等号进行转义,数字后面的加号表示1或更多。

您应该使用以下选项:

/id=(\d+)/g
说明:
  • id=
    -Literal
    id=

  • (\d+)
    -捕获组
    0-9
    介于
    0
    9
    之间的字符范围<代码>+-重复无限次
  • /g
    -修饰符:全局。所有比赛(第一场比赛不返回)

如果您想在PHP中获取所有ID及其值,可以使用:

$string = "There are three ids: id=10 and id=12 and id=100";
preg_match_all("/id=(\d+)/", $string, $matches);
print_r($matches);
输出:


注意:如果要匹配所有选项,必须使用
/g
修饰符。PHP不支持它,但它还有其他功能。您只需从正则表达式中删除
g

您应该执行以下操作:

/id=(\d+)/g
说明:
  • id=
    -Literal
    id=

  • (\d+)
    -捕获组
    0-9
    介于
    0
    9
    之间的字符范围<代码>+-重复无限次
  • /g
    -修饰符:全局。所有比赛(第一场比赛不返回)

如果您想在PHP中获取所有ID及其值,可以使用:

$string = "There are three ids: id=10 and id=12 and id=100";
preg_match_all("/id=(\d+)/", $string, $matches);
print_r($matches);
输出:


注意:如果要匹配所有选项,必须使用
/g
修饰符。PHP不支持它,但它还有其他功能。您只需从正则表达式中删除
g

您应该执行以下操作:

/id=(\d+)/g
说明:
  • id=
    -Literal
    id=

  • (\d+)
    -捕获组
    0-9
    介于
    0
    9
    之间的字符范围<代码>+-重复无限次
  • /g
    -修饰符:全局。所有比赛(第一场比赛不返回)

如果您想在PHP中获取所有ID及其值,可以使用:

$string = "There are three ids: id=10 and id=12 and id=100";
preg_match_all("/id=(\d+)/", $string, $matches);
print_r($matches);
输出:


注意:如果要匹配所有选项,必须使用
/g
修饰符。PHP不支持它,但它还有其他功能。您只需从正则表达式中删除
g

您应该执行以下操作:

/id=(\d+)/g
说明:
  • id=
    -Literal
    id=

  • (\d+)
    -捕获组
    0-9
    介于
    0
    9
    之间的字符范围<代码>+-重复无限次
  • /g
    -修饰符:全局。所有比赛(第一场比赛不返回)

如果您想在PHP中获取所有ID及其值,可以使用:

$string = "There are three ids: id=10 and id=12 and id=100";
preg_match_all("/id=(\d+)/", $string, $matches);
print_r($matches);
输出:



注意:如果要匹配所有选项,必须使用
/g
修饰符。PHP不支持它,但它还有其他功能。您只需从正则表达式中删除
g

如果您先尝试,然后询问?
preg\u match('/^id=(\d+)/,$yourString,$matches);var_dump($matches[1])已经很清楚,我的连接太慢,无法消化其他评论如果您先尝试,然后询问?
preg\u match(“/^id=(\d+/”,$yourString,$matches);var_dump($matches[1])已经很清楚,我的连接太慢,无法消化其他评论如果您先尝试,然后询问?
preg\u match(“/^id=(\d+/”,$yourString,$matches);var_dump($matches[1])已经很清楚,我的连接太慢,无法消化其他评论如果您先尝试,然后询问?
preg\u match(“/^id=(\d+/”,$yourString,$matches);var_dump($matches[1])已经很清楚了,我的连接速度太慢,无法消化其他评论,您不必转义“\”really@user2865738实际上,它不会获取一个数字,但如果将其转换为int,结果将是数字字符串。它将被限制为
(2^32)/2-1
(2^64)/2-1
数字,这取决于您分别使用32位或64位系统。@Ilia Rostovtsev您是对的,我刚才很困惑。而
\d
可以代替
[0-9]
。您不必转义“\”really@user2865738实际上,它不会获取一个数字,但如果将其转换为int,结果将是数字字符串。它将被限制为
(2^32)/2-1
(2^64)/2-1
数字,具体取决于您使用的是32位或64位系统,分别。@Ilia Rostovtsev你是对的,我刚才很困惑。而
\d
可以代替
[0-9]
。您不必转义“\”really@user2865738实际上,它不会获取一个数字,但如果将其转换为int,结果将是数字字符串。它将被限制为
(2^32)/2-1
(2^64)/2-1
数字,具体取决于您使用的是32位或64位系统,分别。@Ilia Rostovtsev你是对的,我刚才很困惑。而
\d
可以代替
[0-9]
。您不必转义“\”really@user2865738实际上,它不会获取一个数字,但如果将其转换为int,结果将是数字字符串。它将被限制为
(2^32)/2-1
(2^64)/2-1
数字,具体取决于您使用的是32位还是64位