【问题标题】:Getting delimiter from a line从一行中获取分隔符
【发布时间】:2013-06-20 16:24:56
【问题描述】:

谁能告诉我在 PHP 中从给定行中找到非空白分隔符的最佳方法?

一些例子是:

例 1: jon, doe, abc@gmail.com, 996655

例 2: abc@gmail.com; doe; ;996655

例 3: jon# doe# 996655# abc@gmail.com

例 4: jon doe 96655

例 5: jon doe 996655 abc@gmail.com

例 6: jon;doe;abc@gmail.com;996655;

在上面的 ex 4 和 5 中,它应该返回未找到分隔符。

感谢任何帮助。

谢谢

【问题讨论】:

  • 这将如何工作? oa 作为分隔符可能与其他字符一样有效。
  • 我认为您可能需要在此处提供更多详细信息。您知道您打算为此使用哪种语言吗?
  • 你会使用正则表达式吗?
  • 它在 PHP 中,是的,我认为如果不使用正则表达式是不可能的。这个想法是在一行中获取电子邮件地址的下一个字符(空格除外)作为分隔符。如果电子邮件位于最后一列,则应获取电子邮件之前的前一个字符(空格除外)。一旦找到该字符,它应该检查该字符是否不是这些 a-zA-Z0-9 中的任何一个。\r\n\f 请问你能帮我解决这个问题吗?

标签: php csv substring delimiter


【解决方案1】:

如果电子邮件位于最后一列,则应获取电子邮件之前的前一个字符(空格除外)。一旦找到该字符,它应该检查该字符是否不是这些 a-zA-Z0-9 中的任何一个。\r\n\f

<?
//Store list
$list = "jon, doe, abc@gmail.com, 996655";
//Split list
$keywords = preg_split("/[:;,#]/", $list);
//Find the position of the last character of the matching word from the list
$index = strpos($list, $keywords[0]) + strlen($keywords[0]);
//Print it
echo substr($list, $index, 1);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2017-05-28
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多