我有一个字符串,想找点什么:
字符串示例:
INSERT INTO #__users VALUES("XXXX","First User","admin","69");
如何找到数字ID? XXX - 是任何数字。
答案 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];