困难的PHP字符串函数

困难的PHP字符串函数,php,regex,string,Php,Regex,String,我有这根绳子(98) 我需要在字符串位置57处断开它。 我的目的是找到从pos 57向后的第一个空格字符(regex\s)。 然后在那里断开字符串,使字符串按如下方式拆分: 1994 Acura Integra Type R OEM B18C5 OEM Tranny All Stock // str1 Interior. 165,000 MI $9500 (000) 000-1696 // str2 我尝试了多种方法,但似乎无法解决: $charAt58 = su

我有这根绳子(98)

我需要在字符串位置57处断开它。

我的目的是找到从pos 57向后的第一个空格字符(regex
\s
)。

然后在那里断开字符串,使字符串按如下方式拆分:

1994 Acura Integra Type R OEM B18C5 OEM Tranny All Stock // str1
Interior. 165,000 MI $9500 (000) 000-1696                // str2
我尝试了多种方法,但似乎无法解决:

$charAt58 = substr($content, 57, 1);

$hasWhiteSpaceAt58 = preg_match('/\s/', $charAt58);

if (!$hasWhiteSpaceAt58) {
    echo "false"; 
    $contentr = strrev($content);
    echo "<br>";
    echo strpos($contentr, " ", 57);
}
$charAt58=substr($content,57,1);
$haswitespaceat58=预匹配('/\s/',$charAt58);
如果(!$haswitespaceat58){
呼应“假”;
$contentr=strev($content);
回声“
”; echo strpos($contentr,“,57); }

任何帮助都将不胜感激。

只需积极地向前看,并在这方面进行拆分

\s(?=Interior)
以上仅与
\s
匹配,后面紧跟
内饰

var_dump(preg_split("/\s(?=Interior)/", $input_line));
这个可以:

$pos = strrpos($content, ' ', 57);
$output = substr($content, 0, $pos) .'\n'. substr($content, $pos); 
尝试这个简单的正则表达式。请参阅演示。这将允许正则表达式捕获到
57
,然后
回溯到它找到
空间为止。前瞻将使它回溯到它找到空间为止


是否有理由通过向下投票来改进答案,或者知道问题出在哪里,或者只是盲目地向下投票?不幸的是,可能内部的绳子没有断裂,但这不是重点。关键是一个单词可能会在57处断开,在这种情况下,我需要将字符串拆分到正确的位置,即str pos 57之前的空白处。然后该位置将始终是this
strrpos($string',57)不,不会。该算法将在动态程序中实现。
我需要在str pos 57之前的空白处的正确位置拆分字符串。
如果这是准确的描述,则是。不管字符串有多长。嗯,这似乎是一个很有前途的方法。我将处理这个问题,看看它与动态加载的其他字符串的关系如何。看起来会的,在我接受答案之前,我只需要确认一下。但到目前为止,这似乎是答案。我会马上实施,然后回来。
$pos = strrpos($content, ' ', 57);
$output = substr($content, 0, $pos) .'\n'. substr($content, $pos); 
^.{1,57}(?=\s)
$s = '1994 Acura Integra Type R OEM B18C5 OEM Tranny All Stock Interior. 165,000 MI $9500 (000) 000-1696';
$parts = str_split($s, strrpos(substr($s, 0, 57), ' ')+1);
print_r($parts);

/*
Array
(
    [0] => 1994 Acura Integra Type R OEM B18C5 OEM Tranny All Stock
    [1] => Interior. 165,000 MI $9500 (000) 000-1696
)
*/