php - 如何在 PHP 中检测字符串中的分隔符?

标签 php string delimiter

我很好奇如果你有一个字符串,你会如何检测分隔符?

我们知道 php 可以使用 explode() 拆分字符串,这需要一个分隔符参数。

但是在将分隔符发送到 explode 函数之前检测分隔符的方法呢?

现在我只是将字符串输出给用户,他们输入分隔符。没关系,但我正在寻找应用程序来为我进行模式识别。

我应该在字符串中寻找正则表达式来识别这种类型的模式吗?

编辑:我最初未能指定可能有一组预期的分隔符。 CSV 中可能使用的任何分隔符。因此从技术上讲,任何人都可以使用任何字符来分隔 CSV 文件,但更有可能使用以下字符之一:逗号、分号、竖线和空格。

编辑 2:这是我为“确定的分隔符”提出的可行解决方案。

$get_images = "86236058.jpg 86236134.jpg 86236134.jpg";

    //Detection of delimiter of image filenames.
        $probable_delimiters = array(",", " ", "|", ";");

        $delimiter_count_array = array(); 

        foreach ($probable_delimiters as $probable_delimiter) {

            $probable_delimiter_count = substr_count($get_images, $probable_delimiter);
            $delimiter_count_array[$probable_delimiter] = $probable_delimiter_count;

        }

        $max_value = max($delimiter_count_array);
        $determined_delimiter_array = array_keys($delimiter_count_array, max($delimiter_count_array));

        while( $element = each( $determined_delimiter_array ) ){
        $determined_delimiter_count = $element['key'];
        $determined_delimiter = $element['value'];
        }

        $images = explode("{$determined_delimiter}", $get_images);

最佳答案

确定您认为可能出现的分隔符(如 ;|)以及每次搜索它们在字符串中出现的频率 ( substr_count)。然后选择出现次数最多的一个作为分隔符并分解

尽管这可能不是万无一失的,但在大多数情况下它应该可以工作;)

关于php - 如何在 PHP 中检测字符串中的分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053599/

相关文章:

javascript - Symfony2 : AJAX request returns full page html

php - mysqli_multi_query 出现问题

mysql - 在mysql中分割文本数据

c - 获取一个字符串,并使用连字符分隔符解析/标记为更小的字符串

php - 从 strtotime 中减去时间

javascript - 无法使用ajax调用外部函数

JavaScript:不区分大小写的数组搜索

Java 字符串拆分为多个字符

python - 如何填充已在python中创建的空字符串

parsing - D3 删除千位逗号分隔符