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
说明:
-Literalid=
id=
-捕获组(\d+)
介于0-9
和0
之间的字符范围<代码>+-重复无限次9
-修饰符:全局。所有比赛(第一场比赛不返回)/g
$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
说明:
-Literalid=
id=
-捕获组(\d+)
介于0-9
和0
之间的字符范围<代码>+-重复无限次9
-修饰符:全局。所有比赛(第一场比赛不返回)/g
$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
说明:
-Literalid=
id=
-捕获组(\d+)
介于0-9
和0
之间的字符范围<代码>+-重复无限次9
-修饰符:全局。所有比赛(第一场比赛不返回)/g
$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
说明:
-Literalid=
id=
-捕获组(\d+)
介于0-9
和0
之间的字符范围<代码>+-重复无限次9
-修饰符:全局。所有比赛(第一场比赛不返回)/g
$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位