我有这样的字符串 -
$existingStr = "Test# 123456 Opened by System";
我想要3个不同的字符串部分 -
1st part : Test#
2nd part : 123456
3rd part : rest of the part
因此,首先我得到哈希的位置然后我从增量哈希位置值寻找空间位置,但它没有给我下一个空间位置。
代码 -
echo $existingStr."<br>";
$strhashPos = strpos($existingStr,"#");
echo $strhashPos."<br>";
$strincementhashPos = $strhashPos + 1;
echo $strincementhashPos ."<br>";
$strspacePos = strpos($existingStr,' ',$strincementhashPos);
echo $strspacePos."<br>";
$tempWOId = $strspacePos-$strincementhashPos;
echo $tempWOId."<br>";
$strFirstPart = substr($existingStr,0,$strincementhashPos);
echo $strFirstPart."<br>";
$strSecondPart = substr($existingStr,$strincementhashPos,$tempWOId);
echo $strSecondPart."<br>";
$strThirdPart = substr($existingStr,$strspacePos,-1);
echo $strThirdPart."<br>";
由于它给了我错误的$ strSecondPart ...有人可以告诉我下一个空间位置有什么问题。还建议一些优化或替代......
答案 0 :(得分:1)
您可以使用php explode()
function
返回一个字符串数组,每个字符串都是字符串的子字符串,通过在字符串分隔符形成的边界上将其拆分而形成。
即。 :
>>> import nltk
>>> nltk.download('vader_lexicon')
>>> from nltk.sentiment.vader import SentimentIntensityAnalyzer
>>> sid = SentimentIntensityAnalyzer()
>>> sid.polarity_scores('happy')
{'neg': 0.0, 'neu': 0.0, 'pos': 1.0, 'compound': 0.5719}
>>> sid.polarity_scores('sad')
{'neg': 1.0, 'neu': 0.0, 'pos': 0.0, 'compound': -0.4767}
>>> sid.polarity_scores('sad man')
{'neg': 0.756, 'neu': 0.244, 'pos': 0.0, 'compound': -0.4767}
>>> sid.polarity_scores('not so happy')
{'neg': 0.616, 'neu': 0.384, 'pos': 0.0, 'compound': -0.4964}
然后要捕获字符串的其余部分,请使用array_slice()
和implode()
函数:
php > $existingStr = "Test# 123456 Opened by System";
php > $strToArr = explode(' ', $existingStr);
php > $strFirstPart = $strToArr[0];
php > echo $strFirstPart . "<br />";
Test#<br />
php > $strSecondPart = $strToArr[1];
php > echo $strSecondPart . "<br />";
123456<br />
希望它有所帮助。
编辑
遵循@Evert注释:php > $strThirdPart = implode(" ", array_slice($strToArr, 2));
php > echo $strThirdPart;
Opened by System
函数可以使用第三个参数来定义限制。这提供了一个很好的捷径!
即。 :
explode()
输出:
阵 ( [0] =&gt;测试# [1] =&gt; 123456 [2] =&gt;由System打开 )
答案 1 :(得分:0)
<?php
$existingStr = "Test# 123456 Opened by System";
$items = explode(' ', $existingStr);
$first = $items[0];
$second = $items[1];
unset($items[0]);
unset($items[1]);
$third = join($items);
echo $first."\n";
echo $second."\n";
echo $third."\n";
结果如下:
localhost:~$ php -f aaaa
Test#
123456
OpenedbySystem