使用正则表达式获取字符串

时间:2016-06-23 14:12:30

标签: php regex

以下是我的字符串示例:

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, &#8211 is for '-'
echo preg_replace($pattern, '', $string);

3 个答案:

答案 0 :(得分:2)

你必须使用正则表达式吗?

<?php
$str = 'Some title  - G-21';
$res = trim(array_shift(explode("&#8211;", $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+-.+$/之类的东西应该用于剥离连字符及其之后的所有内容