帮助分隔字符串

时间:2010-09-11 02:27:30

标签: php

我需要解析几个字符串。该字符串应该用胡萝卜字符分隔,但是,如果达到字符串中允许的最大字符数,则省略胡萝卜字符。我需要找到一种方法来解决这个问题。

这是一个例子。

规则是其中最多不能包含13个字符。在下面的字符串中,有一个“S”,其中应该有一个胡萝卜字符。

MASSYBU HILLSMARY

这是一个未达到13个字符限制的字符串示例

CYPRUS^TOM

如何处理已达到13个字符限制的字符串,其中没有第一个示例中的分隔符?

3 个答案:

答案 0 :(得分:1)

看起来像正则表达式的工作

$str = "whatever^abcabcabcabcxABCABCABCABCXDEF^";

preg_match_all('~[^^]{1,13}~', $str, $m);
var_dump($m[0]);

输出

  [0]=>  string(8) "whatever"
  [1]=>  string(13) "abcabcabcabcx"
  [2]=>  string(13) "ABCABCABCABCX"
  [3]=>  string(3) "DEF"

答案 1 :(得分:0)

首先将字符串限制为13个字符(例如,使用substr),然后查找终结符。这就是你要找的东西吗?

或者,如果您正在使用indexOf查找字符,请将结果限制为13.这实际上取决于您的代码是什么样的。

编辑:让我把它拼出来。

$Length = Min(strlen($String), 13);
if (($TerminatorIndex = strpos($String, "^")) !== FALSE) {
  $Length = Min($Length, $TerminatorIndex);
}

return substr($String, 0, $Length);

答案 2 :(得分:0)

如果您需要削减额外的字符,可以这样做:

$n = 13;

if(strlen($str) > $n)
{
    //do some alteration example
    $str = substr($str, 0, $n);
}