Knime 字符串替换器,替换所有内容直到一些特殊字符串

Knime string replacer, replace everything until some special string

我有一个问题要问 。我也在使用字符串操作节点。

现在我有以下字符串(在一列中):

Order[NN(STTS)]
523:10[CARD(STTS)]
Euro12[NN(STTS)]

我想要输出:

[NN(STTS)]
[CARD(STTS)]
[NN(STTS)]

如何使用 stringManipulation 来做到这一点,现在我正在使用:

regexReplace($List(Term)$, "/(.*?)\[" , "[")

我目前得到的输出是:

?
?
?

如果我使用 java 正则表达式在线检查它:https://regex101.com/r/z6eOHv/1 输出看起来不错:

我的错误是什么?

A "quick fix" 是 regexReplace($List(Term)$, "(.*?)\[" , "[")/ 看起来是在线正则表达式测试服务中使用的正则表达式文字符号的残余,这里不需要,因为 Java 正则表达式仅用字符串文字定义,最后一个 [ 应该在字符串文字中进行双重转义。

不过,您可以只使用

regexReplace($List(Term)$, "^[^\[]+" , "")

正则表达式字符串是^[^\[]+,见regex demo。它匹配

  • ^ - 字符串开头
  • [^\[]+ - 1 个或多个(+ 量词匹配 1 个或多个出现)除 [ 以外的字符([^...] 是否定字符 class 匹配除 class).
  • 中指定的所有字符

由于字符串文字支持字符串转义序列(如制表符 \t 或换行符 \n),反斜杠必须加倍以引入单个文字反斜杠。