正则表达式获取“s.”之后的所有文本并全部删除


RegEx to get all text after 's.' and remove all

$element = "Lorem ipsum s. any text";
// the result should be:
$m[1] = "any text";
$element = "Lorem ipsum";

首先,我想在s.后获取所有文本以进行进一步处理。其次,我需要删除它,包括s. 因此,我正在使用preg_replace_callback.

我的问题是获得正确的正则表达式:

.PHP:

$regex = "??";
$result = array();
$element = preg_replace_callback($regex, function ($m) use (&$result) {
    $result[]=$m[1];
    return '';
}, $element);

使用此正则表达式进行匹配:

^(.+?)s'. *(.+)$

并抓住捕获的组#1和#2

正则表达式演示

法典:

$str = "Lorem ipsum s. any text";  
if (preg_match('/^(.+?)s'. *(.+)$/', $str, $m)) {
   echo "part1=$m[1], part2=$m[2],"
}

试试这个:

$re = "/s''.(.*)/mi";
$str = "Lorem ipsum s. any text'n";
$subst = "";
$result = preg_replace($re, $subst, $str);

现场演示

试试这个

$element = "Lorem ipsum s. any text";
$pattern = '#(s'..*)#i';
preg_match_all($pattern, $element, $matches);
print 'matched : ' . $matches[1][0] . "'n";
print 'clean text : ' . str_replace($matches[1][0], '', $element);

希望对:)有所帮助