使用正则表达式在文档中反向引用

使用正则表达式在文档中反向引用

我有一份包含大量引号的文档。问题是,其中一些句子的引号正确,而另一些句子的引号是反向的,也就是说,开头的引号在句子的末尾,而结尾的引号在开头。如下所示:
'' 藝術本身''
正确的句子应该是这样的:
'' 藝術本身''
我需要编写一个正则表达式,它只会更改反向引号之间的句子。该问题可以在 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

如果我的工具没有混淆,这就解释了为什么你的正则表达式失败了,并且我注意到在这种情况下你的文本编辑器正在做奇怪的事情。

参考 :
UTF-8 编码表和 Unicode 字符页面,代码点为 U+2000 至 U+207F

相关内容