*道歉,我应该更清楚(我非常感谢所有的帮助!)
我从数据库中提取.csv文件。此文件包含地名列表。当我提取它们时,我使用INITCAP,因此它们都是适当的混合大小写。然而,其中一些地名需要保持大写,因为它们是知名缩写,如大学等。最终结果将是我以校正格式将其重新放回数据库。
我是R的新手并且遇到了一些问题。我提取的数据都是大写的,但我需要它是正确的情况,即改变,"这就是所有大写" to"这就是全部大写"但我需要能够排除某些词语。类似于" FYI"和其他缩写需要保持大写。我设法用lettercase库来解决我的一些问题,特别是str_ucfirst。我唯一剩下的问题是例外部分。任何建议,将不胜感激。感谢。
答案 0 :(得分:4)
在@ akrun(现已删除)解决方案的基础上构建一个异常向量,然后使用func gameOver() {
if let myVC = storyboard?.instantiateViewController(withIdentifier: "ViewController") {
self.present(myVC, animated: true, completion: nil)
}
}
将paste0
d转换为正则表达式:
(*SKIP)(*FAIL)
哪个收益
string <- "THIS IS ALL CAPS"
exceptions <- c("FYI", "THIS")
pattern <- sprintf("(?:%s)(*SKIP)(*FAIL)|\\b([A-Z])(\\w+)", paste0(exceptions, collapse = "|"))
gsub(pattern, "\\1\\L\\2", string, perl = TRUE)
注意被忽略的[1] "THIS Is All Caps"
。
THIS
就支持它的正则表达式引擎而言,这是
unimportant|not_important|(very important)
在这种情况下
...(*SKIP)(*FAIL)|what_i_want_to_match
将其输入替换子程序。
答案 1 :(得分:2)
我们可以做到
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket api(ServletContext servletContext) {
return new Docket(DocumentationType.SWAGGER_2)
.pathProvider(new RelativePathProvider(servletContext) {
@Override
public String getApplicationBasePath() {
return "/myapi";
}
})
.select()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.not(PathSelectors.regex("/error")))
.build()
.useDefaultResponseMessages(false);
}
}
或使用<div class="container-responsive">
<footer>
<div class="row no-gutter">
<div class="col-md-4 col-sm-12 col-lg-4 no-padding">
<a href="#"><img src="images/but-plan.png" alt="Plan" /></a>
</div>
<div class="col-md-4 col-sm-12 col-lg-4 no-padding">
<a href="#"><img src="images/but-administration.png" alt="Administration" /></a>
</div>
<div class="col-md-4 col-sm-12 col-lg-4 no-padding">
<a href="#"><img src="images/but-our-team.png" alt="Our Team" /></a>
</div>
</div>
</footer>
</div> <!-- container -->
CSS
footer a {
display:block;
}
footer img {
max-width:100%;
height:auto;
}
/*******************************************************/
/******************* Helper Classes ********************/
/*******************************************************/
.no-padding {
padding-left: 0 !important;
padding-right: 0 !important;
}
gsub("\\b([A-Z])(\\w+)", "\\1\\L\\2", str1, perl = TRUE)
#[1] "This Is All Caps"
stri_trans_totitle
stringi
答案 2 :(得分:1)
使用stringr
包进行camelcase转换而不使用正则表达式:
library(stringr)
string <- "CONVERT THIS TO CAMELCASE, YO"
exceptions <- c("YO", "THIS")
paste(sapply(unlist(str_split(string, " ")),
function(word){ ifelse(word %in% exceptions,
word,
str_to_title(word))}),
collapse = " ")
输出:
[1] "Convert THIS To Camelcase, YO"
答案 3 :(得分:0)
一种有点慢且原始但非常易处理的基础R解决方案:
string <- c("THIS IS ALL CAPS", "FYI only some words should be not all CAPS")
except <- c("fyi", "all")
string2 <- gsub("([A-Za-z])([A-Za-z]+)", "\\U\\1\\L\\2", string, perl = TRUE)
string2
[1] "This Is All Caps" "Fyi Only Some Words Should Be Not All Caps"
string3 <- string2
for (word in except) {
string3 <- gsub(
paste0("(", word ,")"),
"\\U\\1",
string3,
perl = TRUE,
ignore.case = TRUE
)
}
string3
[1] "This Is ALL Caps" "FYI Only Some Words Should Be Not ALL Caps"
答案 4 :(得分:0)
感谢大家。我选择了snoram,这是为了我想做的事情。
(R)ock on。