擅长:python、mysql、java
<p>使用<code>?</code>运算符:</p>
<pre><code>'^(.+ [-] )?(.+)$'
</code></pre>
<p>也许您希望实现它时对空白区域有一点更大的灵活性。。。</p>
<p>一些简单而粗糙的测试脚本(使用php而不是python,抱歉!)以下内容:</p>
<pre><code><?php
$string = "BBC - This is the text.";
$pattern = '/^(.+ [-] )?(.+)$/';
preg_match($pattern, $string, $tokens);
var_dump($tokens);
?>
</code></pre>
<p>测试剪的输出:</p>
<pre><code>array(3) {
[0] =>
string(23) "BBC - This is the text."
[1] =>
string(6) "BBC - "
[2] =>
string(17) "This is the text."
}
</code></pre>
<p>第一个括号与字符串开头的任何文本匹配,该字符串以任何长度的字符开头>;0 whch后跟一个空格字符,然后是文字连字符和另一个空格字符。这种顺序可能存在,也可能不存在。第二个圆括号将字符串的其余部分匹配到最后。</p>