如果我有一个类似的说明:
“我们更希望能得到解答,而不仅仅是讨论的问题。提供细节。写清楚和简单。”
和所有我想要的是:
“我们更希望能得到解答,而不仅仅是讨论的问题。”
我想我会寻找一个正则表达式,如“[!\?]”,决定对strpos然后执行从主字符串SUBSTR,但我想它是做一个平常的事,所以希望有人有一个片段躺在周围。
如果我有一个类似的说明:
“我们更希望能得到解答,而不仅仅是讨论的问题。提供细节。写清楚和简单。”
和所有我想要的是:
“我们更希望能得到解答,而不仅仅是讨论的问题。”
我想我会寻找一个正则表达式,如“[!\?]”,决定对strpos然后执行从主字符串SUBSTR,但我想它是做一个平常的事,所以希望有人有一个片段躺在周围。
稍微更昂贵的表情,如果你想选择多种类型的标点符号作为句子终止但会更加适应。
$sentence = preg_replace('/([^?!.]*.).*/', '\\1', $string);
查找结束符后面有一个空格
$sentence = preg_replace('/(.*?[?!.](?=\s|$)).*/', '\\1', $string);
<?php
$text = "We prefer questions that can be answered, not just discussed. Provide details. Write clearly and simply.";
$array = explode('.',$text);
$text = $array[0];
?>
我以前的正则表达式似乎在测试而不是在实际PHP工作。 我已编辑这个答案提供全面,工作PHP代码,以及改进的正则表达式。
$string = 'A simple test!';
var_dump(get_first_sentence($string));
$string = 'A simple test without a character to end the sentence';
var_dump(get_first_sentence($string));
$string = '... But what about me?';
var_dump(get_first_sentence($string));
$string = 'We at StackOverflow.com prefer prices below US$ 7.50. Really, we do.';
var_dump(get_first_sentence($string));
$string = 'This will probably break after this pause .... or won\'t it?';
var_dump(get_first_sentence($string));
function get_first_sentence($string) {
$array = preg_split('/(^.*\w+.*[\.\?!][\s])/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
// You might want to count() but I chose not to, just add
return trim($array[0] . $array[1]);
}
试试这个:
$content = "My name is Younas. I live on the pakistan. My email is **fromyounas@gmail.com** and skype name is "**fromyounas**". I loved to work in **IOS development** and website development . ";
$dot = ".";
//find first dot position
$position = stripos ($content, $dot);
//if there's a dot in our soruce text do
if($position) {
//prepare offset
$offset = $position + 1;
//find second dot using offset
$position2 = stripos ($content, $dot, $offset);
$result = substr($content, 0, $position2);
//add a dot
echo $result . '.';
}
输出是:
我的名字是Younas。 我住在巴基斯坦。
current(explode(".",$input));
我可能会使用任意的字符串/字符串分割函数在PHP众人(这里有些已经提到)的。 还要考虑的 “ ”或“ \ n”(也可能是。 “\ n \ r ”),而不是仅仅“。” 以防万一,无论出于何种原因,这句话包含了后面没有空格的时期。 我认为这将强化你得到真正的结果的可能性。
例如,搜索只是“” 上:
"I like stackoverflow.com."
将让你:
"I like stackoverflow."
如果说真的,我相信你会喜欢:
"I like stackoverflow.com."
一旦你有一个基本的搜索,你可能会遇到一个或两个场合,可能会错过一些东西。 调为你运行它!
试试这个:
reset(explode('.', $s, 2));