regex 替换多行文本列中行的第一个字符

djp7away  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(97)

我试图用“·“来代替本文中的“o“:
·指导部门的技术
·作为项目负责人履行监督和管理职责
o设定方向以确保实现目标
o选择管理人员和其他关键人员
o与行政同事合作,制定和执行公司计划和部门战略
o监督部门年度财务计划和预算的编制和执行
o管理绩效工资
·履行其他分配的职责
因为这些是在行的开头我试过

test<- sub(test, pattern = "o ", replacement = "• ")  # does not work
test<- gsub(test, pattern = "^o ", replacement = "• ")  # does not work
test<- gsub(test, pattern = "o ", replacement = "• ") # works but it also replaces to to t•

为什么“^o“不起作用,因为它只出现在每行的开头

ct3nt3jp

ct3nt3jp1#

这是否都在单个值中?如果是,请使用lookbehind查找换行符或字符串开头之后的o
第一个
或者,将每行拆分为单独的值,然后使用原始正则表达式:
第一次

nkoocmlb

nkoocmlb2#

此处不需要任何lookbehind,请使用带有(?m)标志的^

test <- gsub(test, pattern = "(?m)^o ", replacement = "• ", perl=TRUE)

(?m)会重新定义^锚的行为,如果您指定m旗标,则表示“行首”。
请参阅online R demo

test <- "• Direct the Department’s technical\n\no Set direction to ensure goals and objectives\n\no Select management and other key personnel"
cat(gsub(test, pattern = "(?m)^o ", replacement = "• ", perl=TRUE))

输出量:

• Direct the Department’s technical

• Set direction to ensure goals and objectives

• Select management and other key personnel

相关问题