Я пытаюсь использовать regexMatcher из String Manipulation в KNIME, но он не работает. Я пишу следующее: regexMatcher ($ Document $, "/ \ w") , когда я хочу извлечь все предложения с/s или/p или w/p или/200. Однако, несмотря на то, что у меня такие случаи в моей таблице, ничего не получается. Буду признателен за вашу помощь.regexMatcher в String Manipulation KNIME
ответ
я получил следующее:
|Document |isOK |other|strict|
|--------------|-----|-----|------|
|Some /p with q|True |False|False |
|/200 |True |True |False |
|/p |True |True |True |
|/s |True |True |True |
|w/p |True |False|False |
|no slash |False|False|False |
Для выражения:
- isOK:
regexMatcher($Document$, ".*?/\\w.*")
(. Я думаю, это то, что вы после) - другое:
regexMatcher($Document$, "/\\w.*")
- :
regexMatcher($Document$, "/\\w")
(Документ не содержит контента после последнего видимого символа.)
Проблемы вы можете столкнуться является ускользающим для узла строки манипулятором и семантики regexMatcher
.
Строковый литерал внутри есть только строка Java, поэтому вам нужно избежать \
(и некоторых других символов), поэтому он становится \\
.
Семантика regexMatcher
, чтобы соответствовать всем строкам, так что вы должны добавить .*?
(не жадный матч ничего) до того значения, которое Вы ищете и .*
(жадный матч ничего) после выражения вы ищете. (Очевидно, что если я неправильно понял ваш вопрос, семантика, вероятно, уже есть то, что вы хотите.)
BTW: в случае, если вы хотите отфильтровать, вы должны проверить Rule-based Row Filter узел, как это предлагает возможность напрямую фильтровать по регулярному выражению. Он использует различные правила, вылетающих (для опции isOK):
$Document$ MATCHES ".*?/\w.*" => TRUE
(побег не допускается в кавычках)$Document$ MATCHES /.*?\/\\w.*/ => TRUE
(маскирование допускается в пределах косой черты (и/
,\
являются должны быть экранированы, но"
не требуется))
Большое вам спасибо. Это именно то, что я искал – Regina
Try 'regexMatcher ($ Document $ "/ \\ ш") = "TRUE"' –
Я обновил свой Que Stion. Я попытался использовать ваше предложение, но оно не сработало – Regina
Попробуйте ''^\\ w */\\ w + $ "' –