擅长:python、mysql、java
<p>尝试以下模式:</p>
<pre><code>([“'"](?=[a-zA-Z\,\.\s])([a-zA-Z\,\.\s]*)[”'"])
</code></pre>
<p>替换:</p>
<pre><code>»$2«
</code></pre>
<p><strong>编辑</strong>:既然你提到了<strong>Python</strong>我想到了一些肯定有用的方法:</p>
<pre><code>#!/usr/bin/python
# coding: utf-8
import os, sys
import re
import codecs
with codecs.open('/path/to/file.txt', 'r', 'utf-8') as f:
encoded = f.read()
encoded = encoded.replace( u'\u201c', u'\"')
encoded = encoded.replace( u'\u201d', u'\"')
encoded = encoded.encode('utf-8')
result = re.sub('(\s[\“\'\"](?=[a-zA-Z\,\.\s]*)([a-zA-Z\,\.\s]*)[\”\'\"]\s)', ' »\\2« ', encoded)
decoded_result = result.decode('utf-8')
print format(decoded_result)
</code></pre>
<p>用文件的位置替换<code>/path/to/file.txt</code>(用utf-8编码保存)。你知道吗</p>
<p><em>由于标点符号中使用的字符编码,上面的代码与标准的搜索和替换有一些不同。可能有一种更简洁的方法来获得相同的最终结果,尽管Python的整个编码过程都很棘手,所以这是任何人的猜测。</em></p>