REGEX-如何检查PHP中字符串的首次出现
我有以下字符串:REGEX-如何检查PHP中字符串的首次出现,php,regex,Php,Regex,我有以下字符串: abc:def abc:ghi abc:jkl 如何检查我的第一次出现是否以abc:开头?字符串除了制表外没有空格\t。这就是我需要的结果: abc:def abc:ghi abc:jkl // true foo:def abc:ghi abc:jkl // false def abc:ghi abc:jkl // false abc:def foo:ghi jkl // tr
abc:def abc:ghi abc:jkl
如何检查我的第一次出现是否以abc:开头?字符串除了制表外没有空格\t。这就是我需要的结果:
abc:def abc:ghi abc:jkl // true
foo:def abc:ghi abc:jkl // false
def abc:ghi abc:jkl // false
abc:def foo:ghi jkl // true
此外,如果需要,我需要检查其他部件。例如,如果我需要检查2st部件:
abc:def abc:ghi abc:jkl // true
foo:def bar:ghi abc:jkl // false
def ghi abc:jkl // false
foo:def abc:ghi jkl // true
我尝试了preg_match/abc\:[^\t]+/,$data,$match;它已工作,但如果其他事件包含abc:,则此代码也将返回true。谢谢大家!
编辑:对不起,这不是一个重复的问题。请看我问题的第二部分。在第二部分中,我不要求如何在第一次出现时获取元素。还没有解决我问题的第二部分。谢谢。无需正则表达式,您只需使用:
(strpos($string, 'abc') === 0)
它将检查abc是否位于字符串的0索引处。如果abc不存在,它将返回-1,您不需要使用正则表达式。PHP有很多内置函数可以搜索您 首次出现时:
您可以按\t分解每一行,然后使用上述strpos函数检查您想要的任何一行。首先,获取行并分解字符串,使每一列都位于自己的存储桶中
$line_data = preg_split("/\t/",$line);
然后,选择您想要的列,看看它是否符合您的需要
if (preg_match("/^abc\b/",$line_data[1])){ #This matches the beginning of column 2 only if the string is on a boundary.
#Do stuff
}
哦,这太好了!我想我可以用这个做点什么。谢谢大家的帮助!
if (preg_match("/^abc\b/",$line_data[1])){ #This matches the beginning of column 2 only if the string is on a boundary.
#Do stuff
}