【问题标题】:regular expression to remove unwanted text from string正则表达式从字符串中删除不需要的文本
【发布时间】:2014-10-22 07:32:51
【问题描述】:

我试图从像这样的大字符串中提取少量信息

[[["좋은","good","joh-eun",""]],[["adjective",[["좋은",["good","nice","pretty","admirable","canny","tenacious"],,0.38553435]],"good",4],["adverb",["훌륭하게",["wonderfully","good","nicely","beautifully","fine","finely"],,0.00029145498],"good",4]]]

我想像这样提取字符串

좋은 - good
좋은 - good,nice,pretty,admirable,canny,tenacious (basically adjectives)
훌륭하게 - wonderfully,good,nicely,beautifully,fine,finely (adverbs)

请帮助我尝试使用 sed 和管道进行切割

cut --delimiter='"' -f 1-2 and then use sed 's/\[\[\[\"//'

这给了我第一个韩语 좋은 结果,我无法扩展它以获得所需的结果! 如果有其他更好的方法可以实现这一点,请提出建议。 提前致谢。

【问题讨论】:

  • 这个例子是你真正的输入吗? [] 的格式似乎不连贯......
  • 你能更准确地区分你想要“提取”的内容和想要丢弃的内容吗? (计算机(或我们)不能用“基本上”做任何事情)。如果你不能 - 如果你想包含所有副词和/或形容词,那么我们需要考虑基于字典的解决方案
  • @Tensibai - 它的实际输入的简短版本..我猜错过了括号,一旦我可以访问计算机就会编辑(现在在手机上)
  • @drewmoore - 我想从该特定输入中取出动词、名词等及其韩语单词。
  • 我的错,一旦格式化梨是正确的,我一开始确实错过了一部分。我是否正确地认为形容词和反词并不总是如此,它们是可选的? (不知道如何用正则表达式处理它,但@avinash-raj 是我所知道的最好的正则表达式编写器;)如果它可以处理,他可以编写它;)

标签: regex sed cut


【解决方案1】:

有点晚,但在适合 sed 的纯正则表达式中:

正则表达式:\[\[\["(.*?)","(.*?)"\]\],\[\["(.*?)",\[\["(.*?)",\["(.*?)"\],.*?\]\],.*?\],\["(.*?)",\["(.*?)",\["(.*)"\],.*\]\]\]

替换:\1 - \2\n\4 - \5 (\3)\n\7 - \8 (\6)

demo

假设在原始行中总是有形容词和副词括号......(即使是空的)

请参阅演示中的替换以了解如何重组匹配项。

【讨论】:

    【解决方案2】:

    这是一块红宝石,但可能任何配备 PCRE 的工具都可以做类似的事情:

    ruby -ne '
        $_.gsub(/"/,"")
          .scan(/ (\p{Hangul}+) ,\[? (.+?) \] /x) {|m| puts m[0] + " - " + m[1]}
    ' <<END
    [[["좋은","good","joh-eun",""]],[["adjective",[["좋은",["good","nice","pretty","admirable","canny","tenacious"],,0.38553435]],"good",4],["adverb",["훌륭하게",["wonderfully","good","nicely","beautifully","fine","finely"],,0.00029145498],"good",4]]]
    END
    
    좋은 - good,joh-eun,
    좋은 - good,nice,pretty,admirable,canny,tenacious
    훌륭하게 - wonderfully,good,nicely,beautifully,fine,finely
    

    太糟糕了,原始文本不是更容易处理 JSON。

    感谢this question如何匹配韩文字符。

    【讨论】:

    • thnx,我对红宝石一无所知,请检查并返回美国。
    猜你喜欢
    • 2018-03-06
    • 2022-11-13
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多