以下是我的字符串示例:
My title - K21
Some title - G-21
Title something - M-02
我需要删除代码和连字符,以便获得清晰的标题。
My title
Some title
Title something
这是我到目前为止提出的代码,但它给了我G-21作为结果,我需要相反的,我需要正则表达式的结果。
$string = 'Some title - G-21';
$pattern = '/.+? (?=–)/i'; // this is ok, – is for '-'
echo preg_replace($pattern, '', $string);
答案 0 :(得分:2)
你必须使用正则表达式吗?
<?php
$str = 'Some title - G-21';
$res = trim(array_shift(explode("–", $str, 2)));
echo $res;
?>
答案 1 :(得分:1)
对多个子字符串使用以下正则表达式模式:
$str = "My title - K21
Some title - G-21
Title something - M-02";
$result = preg_replace("/-\s+[A-Z]-?\d+/", "", $str);
print_r($result);
输出:
My title
Some title
Title something
答案 2 :(得分:0)
两种看待这个的方法。您问题的第一个直接答案是使用preg_match而不是preg_replace。
第二种看待它的方法是使用当前的preg_replace语法去除字符串的结尾。像/\s+-.+$/
之类的东西应该用于剥离连字符及其之后的所有内容