मैं आर देव पर बहुत विशेष परिस्थितियों में पर्ल अभिव्यक्ति \\L\\1
साथ समस्या आ रही (2017/06/06 और 2017/06/16 r72796 बनाता है):क्या रेगेक्स \ एल 3.5.0 में समर्थित है?
bib <- readLines("https://raw.githubusercontent.com/HughParsonage/TeXCheckR/master/tests/testthat/lint_bib_in.bib", encoding = "UTF-8")
leading_spaces <- 2
is_field <- grepl("=", bib, fixed = TRUE)
field_width <- nchar(trimws(gsub("[=].*$", "", bib, perl = TRUE)))
widest_field <- max(field_width[is_field])
out <- bib
# Vectorized gsub:
for (line in seq_along(bib)){
# Replace every field line with
# two spaces + field name + spaces required for widest field + space
if (is_field[line]){
spaces_req <- widest_field - field_width[line]
out[line] <-
gsub("^\\s*(\\w+)\\s*[=]\\s*\\{",
paste0(paste0(rep(" ", leading_spaces), collapse = ""),
"\\L\\1",
paste0(rep(" ", spaces_req), collapse = ""),
" = {"),
bib[line],
perl = TRUE)
}
}
# Add commas:
out[is_field] <- gsub("\\}$", "\\},", out[is_field], perl = TRUE)
out[9]
#> R-dev " author"
#> R 3.4.0 " author = {Tony Wood and Amélie Hunter and Michael O'Toole and Prasana Venkataraman and Lucy Carter},"
पुन: पेश करने के लिए, यह आवश्यक है:
readLines
फ़ाइल से, और एन्कोडिंग निर्दिष्ट करें। (dput
का पुन: उत्पन्न नहीं होगा)- पेर्ल रेगेक्स में
\\L
या\\U
का उपयोग करने के लिए। - पात्रों
- का एक वेक्टर का उपयोग करने के लिए कि वेक्टर का एक तत्व कि UTF-8 (ऊपर में एमेलि में é) की आवश्यकता है के लिए
इस आर 3.5.0 में एक परिवर्तन है, या है मैं इस उदाहरण में \\L
का दुरुपयोग कर रहा था?
देखो, तो आपको सचेत कर दिया गया है: [* यह संभावना शामिल कीड़े, इसलिए सावधान अगर आप इसका इस्तेमाल हो सकता है *।] (Https://cran.r-project.org /bin/windows/base/rdevel.html)। –
मैं स्निपेट नहीं बना सका - 'अग्रणी_ स्पेस' क्या है? –
यह विशेष बग एक पैकेज के लिए आर सीएमडी चेक पर एक त्रुटि उत्पन्न कर रहा है। Nonreprex के बारे में खेद है, मैंने संपादित किया है। – Hugh