查找字符串特定信息

时间:2015-07-10 12:26:46

标签: php mysql regex

我有一个字符串,想找点什么:

字符串示例:

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

如何找到数字ID? XXX - 是任何数字。

1 个答案:

答案 0 :(得分:2)

您可以使用preg_match函数获取此正则表达式的值:

^INSERT\s+INTO\s+#\S+\s+VALUES\("([^"]+)

<强> REGEX

  • ^ - 字符串的开头(如果添加m标志,则可以是一行的开头)
  • INSERT - 文字字符串INSERT
  • \s+ - 一个或多个空格符号
  • INTO - 文字INTO
  • \s+ - 一个或多个空格符号
  • #\S+ - 文字#后跟一个或多个非空格符号
  • \s+ - 一个或多个空格符号
  • 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