删除字符串中的特定行

时间:2015-09-29 19:45:19

标签: php string

我想以下列方式转换字符串。

输入字符串:

WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06

预期输出字符串:

WB - KU - 5VWB1\nlokaal 2.06

其中:"WB - KU - 5VWB1 (WB - KU - 5VWB1)"可以是任何东西。总有3行。我总是希望删除第二行。

编辑:

我当前的州/代码:

$data = explode("\n", $event["DESCRIPTION"]);

给出:

array(1) { [0]=> string(63) "WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06" }

2 个答案:

答案 0 :(得分:2)

这应该适合你:

只是连接从开头到第一个新行的子字符串和最后一个新行的子字符串,例如

所以你做了什么:

             Start of the string                           End of the string
             |          Position of                        Position of     |
             |       the first new line                 the last new line  |
             ↓              ↓↓                                 ↓↓          ↓
string:     "WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06"
             └───────┬──────┘                                  └─────┬─────┘
                     |                                               |
substring(s): "WB - KU - 5VWB1"              .                 "\nlokaal2.06"
                     └───────────────────────┬───────────────────────┘
                                             |
result:                         "WB - KU - 5VWB1\nlokaal" 

代码:

$str = "WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06";
echo substr($str, 0, strpos($str, PHP_EOL)) . substr($str, strrpos($str, PHP_EOL));

输出:

WB - KU - 5VWB1
lokaal 2.06

修改

正如评论中所显示的那样,您的字符串中只有\n,因此只需strpos($str, PHP_EOL)strrpos($str, PHP_EOL)重新strpos($str, '\n')strrpos($str, '\n')。< / p>

答案 1 :(得分:1)

版本1字符串\n

$x='WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06';

$y=explode("\\n",$x); //string /n

print_r($y);

版本2实际换行符:

$x="WB - KU - 5VWB1\nWB - KU - 5VWB1 (WB - KU - 5VWB1)\nlokaal 2.06";

$y=explode("\n",$x); //actual line break

print_r($y);

两者的结果:

数组([0] =&gt; WB - KU - 5VWB1 [1] =&gt; WB - KU - 5VWB1(WB - KU - 5VWB1)[2] =&gt; lokaal 2.06)