如何检查某个字符串是否位于字符串的开头?
How can I check if a certain string is at the start of a string?
我正在尝试 preg_match 一个字符串。基本上如果我有一个字符串被赋予一个变量
$line = " <szFilename>  ds </szFilename> "
而且我需要检查刺痛是否以 "<szFilename>" .
开头
我发现很难找到模式。
我试过的是
$line=" <szFilename>  ds </szFilename> ";
//$line2=" <szFilenamed1>  ds </szFilenamed1> ";
//echo trim($line);
if(preg_match("/[<szFilename>]*/",trim($line))){
echo "GOT IT";
}
有什么帮助吗?
这里不需要正则表达式。只需简单地使用 strpos()
来确定字符串是否在开头(索引 0),例如
if(strpos(trim($line), "<szFilename>") === 0) {
echo "success";
}
如果您 want/need 使用正则表达式,只需在开头使用 anchor (^
) 来匹配您的正则表达式,例如
if(preg_match("/^<szFilename>/", trim($line))) {
echo "success";
}
此外,如果您正在编写自己的正则表达式,我可以强烈推荐这个网站:https://regex101.com/,它很好地突出显示了所有内容,并且您会在右侧得到一个很好的解释,即您的正则表达式的作用。
只需 '/^\s*<szFilename>.+/'
即可。
我正在尝试 preg_match 一个字符串。基本上如果我有一个字符串被赋予一个变量
$line = " <szFilename>  ds </szFilename> "
而且我需要检查刺痛是否以 "<szFilename>" .
开头
我发现很难找到模式。
我试过的是
$line=" <szFilename>  ds </szFilename> ";
//$line2=" <szFilenamed1>  ds </szFilenamed1> ";
//echo trim($line);
if(preg_match("/[<szFilename>]*/",trim($line))){
echo "GOT IT";
}
有什么帮助吗?
这里不需要正则表达式。只需简单地使用 strpos()
来确定字符串是否在开头(索引 0),例如
if(strpos(trim($line), "<szFilename>") === 0) {
echo "success";
}
如果您 want/need 使用正则表达式,只需在开头使用 anchor (^
) 来匹配您的正则表达式,例如
if(preg_match("/^<szFilename>/", trim($line))) {
echo "success";
}
此外,如果您正在编写自己的正则表达式,我可以强烈推荐这个网站:https://regex101.com/,它很好地突出显示了所有内容,并且您会在右侧得到一个很好的解释,即您的正则表达式的作用。
只需 '/^\s*<szFilename>.+/'
即可。