我有一份包含大量引号的文档。问题是,其中一些句子的引号正确,而另一些句子的引号是反向的,也就是说,开头的引号在句子的末尾,而结尾的引号在开头。如下所示:
'' 藝術本身''
正确的句子应该是这样的:
'' 藝術本身''
我需要编写一个正则表达式,它只会更改反向引号之间的句子。该问题可以在 Word 中正确看到。
由于某种原因,以下正则表达式无法正常工作。它也考虑了正确的内容。
\x{2019}{2}(.+?)\x{2018}{2}
答案1
您可以尝试这些 Unicode 语法变体
\x{}
(\x{2019})\x{2019}(.+?)\x{2018}(\x{2018})
$3$3$2$1$1
https://regex101.com/r/1OwVoT/1
或者
\uDDDD
(\u2019)\u2019(.+?)\u2018(\u2018)
$3$3$2$1$1
https://regex101.com/r/xZiBxu/1
答案2
您的勾号可能不只由一个字符组成。当我复制并粘贴您的文本时,我按照您帖子中出现的顺序获得了四个勾号的以下信息:
E2 80 99 : U+2019 ’ RIGHT SINGLE QUOTATION MARK
E2 80 98 twice : U+2018 ‘ LEFT SINGLE QUOTATION MARK
E2 80 98 twice : U+2018 ‘ LEFT SINGLE QUOTATION MARK
E2 80 99 twice : U+2019 ’ RIGHT SINGLE QUOTATION MARK
如果我的工具没有混淆,这就解释了为什么你的正则表达式失败了,并且我注意到在这种情况下你的文本编辑器正在做奇怪的事情。