我喜欢使用PHP的strtok()
函数来标记化字符串,并且想知道分隔符的哪个部分抓取了当前令牌。
所以这是一个例子:
#my comment
something: one, two, three
如果我现在使用:
$token = strtok($string, '#:,' . PHP_EOL);
我将my comment
作为第一个令牌,因为#
和new line
对其进行了标记。那么现在有可能获得当前令牌的起始和结束分隔符吗?
答案 0 :(得分:2)
如果您正在寻找包含分隔符的方法,因为它们具有一些特殊语法含义 - 那么您应该使用语法工具。 strtok()
我的分隔符不同,因为它不是此功能的意图。
相反,您可以尝试使用token_get_all()
:
$string = '#my comment
something: one, two, three';
//note that <?php is needed to make it parse PHP syntax:
$result = token_get_all('<?php '.$string);
-it会解析语法并将lexems拆分为结果数组(这样你就可以得到你的注释和你的字符串以及与:
,,
e相对应的数组成员TC)。