查找字符串的具体信息

问题描述:

我有一个字符串,想找到的东西:查找字符串的具体信息

字符串例如:

INSERT INTO #__users VALUES("XXXX","First User","admin","69"); 

我如何才能找到数字ID? 其中XXX - 是任何数字。

+0

什么是你正在寻找的结果?你想找到XXXX或ID在数据库中创建也许? – insanebits

+1

你是指你插入的行的ID吗?你用什么来插入它? PDO有以下内容:http://php.net/manual/en/pdo.lastinsertid.php –

+0

这只是一个字符串。 – user889349

您可以使用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]; 

IDEONE demo