查找字符串的具体信息
问题描述:
我有一个字符串,想找到的东西:查找字符串的具体信息
字符串例如:
INSERT INTO #__users VALUES("XXXX","First User","admin","69");
我如何才能找到数字ID? 其中XXX - 是任何数字。
答
您可以使用preg_match
功能与此正则表达式来获取值:
^INSERT\s+INTO\s+#\S+\s+VALUES\("([^"]+)
正则表达式:
-
^
- 字符串的开头(可如果您在开始线路加一个m
标志) -
INSERT
- 文字字符串INSERT
-
\s+
- 1个或多个空格符号 -
INTO
- 字面INTO
-
\s+
- 1或多个空格符号 -
#\S+
- 随后用1或多个非空白符号 -
\s+
字面#
- 1或更空格符号 -
VALUES\("
- 文字VALUES("
-
([^"]+)
- 与"
以外的一个或多个字符匹配的捕获组(如果您在此仅有数字,则可以使用\d+
)。
请参阅demo。您需要的字符串位于捕获的组1中,因为[^"]+
将安全地匹配所有内容,而不是双引号。如果它只包含数字,请使用\d+
:^INSERT\s+INTO\s+#\S+\s+VALUES\("(\d+)
。如果字符串没有出现在字符串/行的开头,请删除^
。
$re = '/^INSERT\s+INTO\s+#\S+\s+VALUES\("([^"]+)/';
$str = "INSERT\nINTO #__users\nVALUES(\"9999\",\"First User\",\"admin\",\"69\");";
preg_match($re, $str, $matches);
echo $matches[1];
什么是你正在寻找的结果?你想找到XXXX或ID在数据库中创建也许? – insanebits
你是指你插入的行的ID吗?你用什么来插入它? PDO有以下内容:http://php.net/manual/en/pdo.lastinsertid.php –
这只是一个字符串。 – user889349