RegEx可以获得所有文字。'并删除所有

时间:2014-11-17 18:34:41

标签: php regex

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

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

我的问题是获得正确的RegEx:

PHP:

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

3 个答案:

答案 0 :(得分:0)

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

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

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

RegEx Demo

代码:

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

答案 1 :(得分:0)

试试这个:

$re = "/s\\.(.*)/mi";
$str = "Lorem ipsum s. any text\n";
$subst = "";

$result = preg_replace($re, $subst, $str);

live demo

答案 2 :(得分:0)

试试这个

$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);

希望有所帮助:)