Php 使用正则表达式获取最多个字符的字符串
以下是我的字符串示例:Php 使用正则表达式获取最多个字符的字符串,php,regex,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'; /
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);
你必须使用正则表达式吗
<?php
$str = 'Some title - G-21';
$res = trim(array_shift(explode("–", $str, 2)));
echo $res;
?>
您必须使用正则表达式吗
<?php
$str = 'Some title - G-21';
$res = trim(array_shift(explode("–", $str, 2)));
echo $res;
?>
对多个子字符串使用以下正则表达式模式:
$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
对多个子字符串使用以下正则表达式模式:
$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
从两个方面来看这个问题。您的问题的第一个直接答案是使用而不是preg_替换
第二种方法是使用当前的preg_replace语法去掉字符串的末尾。类似于
/\s+-.++$/
的东西应该可以用来去除连字符及其后面的所有内容,有两种方法来看待这个问题。您的问题的第一个直接答案是使用而不是preg_替换
第二种方法是使用当前的preg_replace语法去掉字符串的末尾。类似于
/\s+-.++$/
的东西应该可以用来去除连字符及其后面的所有内容如果有多个空格连字符空格,则它将不起作用。查看是否有多个空格连字符空格,它将不起作用。看,代码总是存在吗?文件中可以有多个空格连字符空格吗?代码当前存在,我不确定是否会是这样。同样对于标题,一切都是可能的:使用preg\u替换为,或使用preg\u匹配为。代码是否始终存在?文件中可以有多个空格连字符空格吗?代码当前存在,我不确定是否会是这样。同样对于标题,一切都是可能的:使用preg\u替换为,或者使用preg\u匹配为。我想知道你为什么选择\b
?代码似乎位于字符串的末尾,$
看起来更合适。另外,为什么您倾向于使用{1,}
而不是+
?还有一个:-\s+?[A-Z]
=-\s+[A-Z]
@WiktorStribiżew,至于\b
-同意,至于{1,}
-用作+
的替代品。但是,在您看来,为什么在这个\s+?
案例中ungrady opearator是多余的呢?在\s+?
和\s+
之间的行为没有区别。你期望有什么不同?在如此简单的情况下,也许是的。。。在工作日结束时,我错过了这些事情。固定的。谢谢我想知道你为什么选择\b
?代码似乎位于字符串的末尾,$
看起来更合适。另外,为什么您倾向于使用{1,}
而不是+
?还有一个:-\s+?[A-Z]
=-\s+[A-Z]
@WiktorStribiżew,至于\b
-同意,至于{1,}
-用作+
的替代品。但是,在您看来,为什么在这个\s+?
案例中ungrady opearator是多余的呢?在\s+?
和\s+
之间的行为没有区别。你期望有什么不同?在如此简单的情况下,也许是的。。。在工作日结束时,我错过了这些事情。固定的。谢谢