我绝对不是正则表达式专家,而且一直困在这一点:
这就是我所拥有的:
a <- paste(c(LETTERS[1:20], "<br/>", LETTERS[21:26]), collapse ="")
[1] "ABCDEFGHIJKLMNOPQRST<br/>UVWXYZ"
我尝试查找一个或多个大写字母,并包含其他HTML标记,例如粗体<b>
,仅对字母B
起作用。
gsub("B", "<b>B</b>", a)
[1] "A<b>B</b>CDEFGHIJKLMNOPQRST<br/>UVWXYZ"
或"AB"
:
b <- c("AB")
gsub(b, paste0("<b>", b, "</b>"), a)
[1] "<b>AB</b>CDEFGHIJKLMNOPQRST<br/>UVWXYZ"
但突出显示<br/>
上的模式当然不适合这种方法。 (例如gsub("STU", "<b>STU</b>", a)
)
所以我需要一个忽略<br/>
标签的函数。我使用类似^(?!.*br)
的内容启动了查询,但我无法正常工作。
所以我的预期输出将是:
b <- c("STU")
# function and expected output:
"ABCDEFGHIJKLMNOPQR<b>ST<br/>U</b>VWXYZ"
答案 0 :(得分:2)
您可以使用function contextListener() {
if(!document.handAddcontext){
document.handAddcontext = true
document.addEventListener("contextmenu", function(e) {
taskItemInContext = clickInsideElement(e, taskItemClassName);
if (taskItemInContext) {
e.preventDefault();
toggleMenuOn();
positionMenu(e);
} else {
taskItemInContext = null;
toggleMenuOff();
}
});
}
}
gsub
答案 1 :(得分:0)
当你写:
"<b>A<br/>B</b><br/>C"
不应该吗?
"<b>A</b><br/><b>B</b><br/><b>C<b/>"
你可以尝试:
require(magrittr) # for the %>% notation
a <- paste(LETTERS[1:3],collapse = "<br/>")
res <- strsplit(a, "<br/>") %>% unlist %>% ifelse(. %in% LETTERS, sprintf("<b>%s</b>", .), .) %>% paste0(., collapse = "<br/>")
stopifnot(res == "<b>A</b><br/><b>B</b><br/><b>C</b>")
a <- paste(LETTERS[1:5],collapse = "<br/>")
res <- strsplit(a, "<br/>") %>% unlist %>% ifelse(. %in% LETTERS, sprintf("<b>%s</b>", .), .) %>% paste0(., collapse = "<br/>")
stopifnot(res == "<b>A</b><br/><b>B</b><br/><b>C</b><br/><b>D</b><br/><b>E</b>")
a <- "A<br/>B<br/>f<br/>C<br/>d"
res <- strsplit(a, "<br/>") %>% unlist %>% ifelse(. %in% LETTERS, sprintf("<b>%s</b>", .), .) %>% paste0(., collapse = "<br/>")
stopifnot(res == "<b>A</b><br/><b>B</b><br/>f<br/><b>C</b><br/>d")