【问题标题】:How does Perl split work with string exactly?Perl split 如何准确地处理字符串?
【发布时间】:2011-07-14 04:48:54
【问题描述】:

引用自perldoc -f split

作为一种特殊情况,指定空格 (' ' ) 的 PATTERN 将在 空白就像没有参数的分割一样。因此, split(' ') 可以 用于模拟 awk 的默认行为,而 split(/ /) 将 给你尽可能多的初始空字段(空字符串) 前导空格。

以上就是关于split如何处理string定界符的全部内容,但是一般情况是什么,对于字符串定界符是否总是删除空的前导字段?

【问题讨论】:

  • 没有指定split 的行为与一个模式的字符串,而不是' 'split 主要用于正则表达式...
  • @Nemo:指定为:The pattern "/PATTERN/" may be replaced with an expression to specify patterns that vary at runtime.,字符串是表达式的一种情况。
  • 您也可以通过/\s+/ 在空白处拆分,而无需' ' 的特殊行为。这会将多个空格字符组合到一个字段分隔符中

标签: perl


【解决方案1】:

不,仅当分隔符是单个空格的字符串时。在任何其他情况下,分隔符都被解释为正则表达式模式。

【讨论】:

  • 如果分隔符不是单个空格,那么不能让split 删除空的前导字段?
  • 在进行拆分之前用正则表达式自己修剪字符串是微不足道的,或者丢弃数组的前导 undef 结果。
  • @Justin Hawkins,并且会有一个这样的空字符串。 shift(@results) if @results && $results[0] eq '';
猜你喜欢
  • 2016-06-13
  • 1970-01-01
  • 2012-01-22
  • 2016-05-18
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
相关资源
最近更新 更多