【问题标题】:R regex reversing string with parenthesesR正则表达式反转带括号的字符串
【发布时间】:2015-08-19 03:26:59
【问题描述】:

假设您想反转一个字符串,该字符串的部分由括号分隔,而部分不是。解决此问题的最佳正则表达式方法是什么?这是我最后一个问题的链接,解决了类似的问题R regex - splitting between parentheses

x <- "(A|C|T)AG(C|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)GCC(C|T)(A|C|G|T)(A|C|G|T)(A|C|G)"

# Desired output
rev_x
"(A|C|G)(A|C|G|T)(A|C|G|T)(C|T)CCG(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(C|T)GA(A|C|T)"

【问题讨论】:

标签: regex r


【解决方案1】:

您也可以尝试从library(stringi) 中提取stri_extract_all 中的字符以及括号作为一个组(\\([^)]+\\))或(|list 中的任何其他字符(.)一个列表元素,我们可以用[[1]]提取它,然后用collapse=''反转vectorrev)和paste

library(stringi)
paste(rev(stri_extract_all(x, regex='\\([^)]+\\)|.')[[1]]), collapse='')
#[1] "(A|C|G)(A|C|G|T)(A|C|G|T)(C|T)CCG(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(A|C|G|T)(C|T)GA(A|C|T)"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 2021-11-24
    • 2022-01-17
    • 2019-08-25
    相关资源
    最近更新 更多