如何使用正则表达式查找和删除不同的类

时间:2018-06-07 15:40:43

标签: regex

我想从文档中删除所有data-reactid属性。但是,里面的所有ID都不同。我如何一次找到它们,并用空字符串替换它们? (删除它们)。

自:

data-reactid=".25lvfez8hmo.4.0.0.1.0.1.0"
data-reactid=".25lvfez9hmo.4.0.0.1.0.1.0"
data-reactid=".25lvfez10hmo.4.0.0.1.0.1.0"

要:

Nothing

3 个答案:

答案 0 :(得分:1)

使用此: cat your_file | sed 's/^data-reactid=.*//'

答案 1 :(得分:1)

您可以匹配data-reactid=",然后使用否定的character class [^"]+后跟"

匹配不是双引号

\bdata-reactid="[^"]+"

替换为空字符串。

答案 2 :(得分:0)

我不完全确定您选择使用哪种语言来解析文档数据以删除您建议的值,但如果您善于使用Java,那么这应该可以实现您的目标。

library(shiny)
library(stringi)

ui <- fluidPage(
  textInput("textin", "Enter Text"),
  textOutput("text")
)

server <- function(input, output) {
  output$text <- renderText({
    textout <- input$textin
    textout <- paste(stri_sub(textout, 1, 3),".",
                     stri_sub(textout, 4, 6), ".",
                     stri_sub(textout, 7, 9), "-",
                     stri_sub(textout, 10, 12), ".",
                     stri_sub(textout, 13, 14), ".")

    print(textout)
  })
}

shinyApp(ui, server)

如果要从文档中实际删除整行,请使用以下命令更改replaceAll行:

public static void main( String args[] ) {
    String lineOfDocument = "data-reactid=\".25lvfez8hmo.4.0.0.1.0.1.0\"";

    //pattern to find in document line, will find everything in data-reactid=" "
    String pattern = "data-reactid=\".*\"";

    //now fix the line
    String fixedLineOfText= lineOfDocument.replaceAll(pattern, "data-reactid=\" \"");

    //you can now write it back to the document, but for simplicity, I
    //will just print it out
    System.out.println(fixedLineOfText);    //will output data-reactid=" "

}