繁体   English   中英

删除方括号之间没有空格的方括号

[英]Remove square brackets that don't have spaces between them

我正在尝试删除方括号之间没有空格的地方,但要保留有方括号的地方。 例如:

  • 匹配这些括号并删除它们: []
  • 不要匹配这些括号并将其删除: [帮助我]

注意:我只想匹配括号,而不要匹配内容。

我认为我需要使用向前看,例如\\\\[(?!= ) 但是,这只能向前看下一个字符,而我想检查一下方括号之间的所有字符都不是空格。 在这种情况下该怎么办?

新版本的stringr可能对您有用,它有一个不错的小部件来测试regex匹配。

stringr::str_view_all(c("[please]", "[help me]"), "(\\[)\\S*(\\])")

使用[]作为捕获组匹配[ ,然后是任意数量的非空格字符,然后是] 我不确定您想对他们做什么。

更新:要删除方括号,您实际上要捕获其中的内容,然后用它替换。

stringr::str_replace_all(c("[please]", "[help me]"), "\\[(\\S*)\\]", "\\1")
#> [1] "please"    "[help me]"

(捕获方括号之间的所有非空格字符,并将整个字符串替换为找到的捕获内容)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM