【问题标题】:Matlab ... character in string split - How to remove?Matlab ...字符串拆分中的字符-如何删除?
【发布时间】:2017-02-03 23:27:49
【问题描述】:

问题很简单,但我无法在 matlab 中搜索单个字符“...”。

DELIMS = {' ', '.', ',', '?', '\n'};
email = fileread(file_path);
email = strsplit(email, DELIMS);

就是这样。最初,字符串看起来像:

“主题:87 , 847 瓶每天售出 - slze 很重要!6 ppntufbis aqtdaibnuf jmxdzjdyjskm noyrhrcsltyiyc yfcgqhbjrw noqqngttnymi ljpdpfbocwqnjb 唯一的解决方案……”,它继续。我不会发布其余的,因为这是关于男性增强药物垃圾邮件的电子邮件。

当我拆分这个字符串时,我得到以下信息:

Columns 1 through 4

'Subject:'    '87'    '847'    'bottles'

Columns 5 through 8

'sold'    'daily'    '-'    'slze'

Columns 9 through 12

'matters'    '!'    '6'    'ppntufbis…'

Columns 13 through 14

'aqtdaibnuf'    'jmxdzjdyjskm'

Columns 15 through 16

'noyrhrcsltyiyc'    'yfcgqhbjrw'

Columns 17 through 18

'noqqngttnymi'    'ljpdpfbocwqnjb…'

经过检查,我们看到这些……字符实际上是一个字符。我假设这些是 \n 字符(我应该删除)。我想摆脱这些,但由于谷歌不将这些字符识别为实际查询,我对这些字符有点迷茫。来自 C++ 背景,这非常令人困惑。任何帮助将不胜感激!

whos email
Name       Size             Bytes  Class    Attributes

email      1x125            15252  cell 


email{12}

ans =

ppntufbis


char(email{12})

ans =

ppntufbis

【问题讨论】:

  • 它看起来是 unicode horizontal ellipsis 字符。
  • 我无法使用 R20105b 在您的文本中使用确切的示例字符串进行复制。你用什么 Matlab 版本?
  • @LuisMendo 我正在使用 R2016b。和烧杯,是从 unicode 投射的潜在解决方案吗?也许是因为文件本身的格式。我可以发给你,但我不能在堆栈溢出时在线发布文件。
  • 我现在无法在 R2016b 上测试它。在strsplit之后,email{12}char(email{12})whos email会显示什么?
  • @LuisMendo 刚刚更新了问题。

标签: string matlab io char


【解决方案1】:

所以在烧杯的帮助下,我找到了解决办法。

'...' 实际上是 Matlab 告诉我在所见内容之后还有更多内容的方式,特别是下一行(可能为空或不为空)。

当我指定自己的分隔符时,我以为我包含了换行符 \n,但这个文件太旧了,以至于它使用了\f。 Matlab没有告诉我,所以我认为我实际上能够分割线。

【讨论】:

    猜你喜欢
    • 2020-04-09
    • 2021-07-17
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多