3

記事を書く際に、PDF からテキストを引用するために R を使用することがあります (私は LATEX を使用しています)。私がやりたいことの 1 つは、まっすぐな左引用符と右引用符を LATEX スタイルの左引用符と右引用符に変更することです。

LATEX は次のように変更"dog"されます``dog'' (つまり、左に 2 つの `、右に 2 つの ')

これが私が持っているものと私が手に入れたいものの例です。

#currently
x <- c('I like "proper" cooking.', 'I heard him say, "I want some too" and "nice".')

[1] "I like \"proper\" cooking."   "I heard him say, \"I want some too\" and \"nice\"."

#desired outcome
[1] "I like ``proper'' cooking."   "I heard him say, ``I want some too'' and ``nice''."

編集:コンテキストの実際の使用法を共有したいと思いました。ttmaccer のソリューションを使用する (Windows マシンで動作します):

g <- function(){
    require(qdap)
    x <- readClipboard()
    x <- clean(paste2(x, " "))
    zz <- mgsub(c("- ", "“", "”"), c("", "``", "''"), x)
    zz <- gsub("\"([^\"].*?)\"","``\\1''", zz)
    writeClipboard(noquote(zz), format = 1)
}

注:ここからqdapダウンロードできます

4

2 に答える 2

3

素朴な解決策は次のとおりです。

> gsub("\"([^\"].*?)\"","``\\1''",x)

[1] "I like ``proper'' cooking."                        
[2] "I heard him say, ``I want some too'' and ``nice''."

しかし、私はあなたがどのように扱うかわかりません"some \"text\" with one \""

于 2012-08-14T02:01:39.980 に答える
1

2 段階のソリューション:

ステージ 1:"((?:[^\\"]|\\.)*)"二重引用符で囲まれた文字列に一致させるために使用します
ステージ 2:ステージ 1 のグループ 1\\"([^\\"]*)\\"から置換するために使用します\"

于 2012-08-14T01:57:25.030 に答える