RegEx查询只返回一个单词,而不是一个完整的句子

TobiTeeTobiTee 成员职位:11贡献我
嘿,我是Rapidminer的新手,我想分析我的学士论文的文本。我已经对文档进行了预处理(例如标记化等),并希望使用“提取信息”和正则表达式来获取包含单词“Kenntnisse”的所有句子。
我已经在regex101.com和regexr.com上测试了一些表达式,都有效。
例如:^.*(kenntnisse| kenntnisse| kennt*)或(?m)^.*?(kenntnisse)。但是当我在“提取信息”中使用查询时,我只得到单词“Kenntnisse”,而不是整个句子/段落。

有人能帮我吗?

谢谢你们了!


最好的答案

答案

  • TobiTeeTobiTee 成员职位:11贡献我
    天啊!谢谢你!
    这几乎有点尴尬……

    在我提出更多的问题之前,我尝试了更多的东西,并深入阅读了这个主题。

    但是,我会回来的B)

    kayman
  • TobiTeeTobiTee 成员职位:11贡献我
    你好再次,
    所以看起来查询正在工作(?i)[^.\s]*Kenntnisse*[^\n]*
    结果中只显示一个(第一个)匹配项,而在编辑器中显示4个匹配项。
    我是不是又忘了什么?我以为这是通过“多线模式”实现的,但似乎没有什么区别。



  • kaymankayman 成员职位:662独角兽
    你能以演示的形式分享一下你的过程吗?如果没有完全的可见性,很难看出问题在哪里。
    (^。部分基本上意味着“除了实际的点或空格之外的任何东西”,所以它可能不会给你你需要的结果,这可能是你只得到第一个匹配和多行不起作用的原因

    试着这样做:

    (?我)^。* \ bkenntnisse \ b。*美元

    \b表示单词边界,所以除了字符之外的所有内容,因此上面的声明“如果单词kennetnisse位于开始(^)和结束($)之间,无论使用何种大小写,都要匹配……”

    多行模式将允许你逐行使用这个,所以你可能甚至不需要^和$字符,因为这被认为是默认的,但它从来没有伤害…

    如果你想关注多个单词,你可以使用以下方法

    (?我)^ . * \ b (?: kenntnisse | other_word | something_else) \ b。*美元

    (?: XXX)允许你分组,但不“存储”这个
  • TobiTeeTobiTee 成员职位:11贡献我
    我如何以演示的形式分享你的一些过程?
    只是导出过程或复制和过去的XML代码?
  • TobiTeeTobiTee 成员职位:11贡献我
    2020年11月编辑
    404
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    这并不一定是好消息,但我有一个类似的问题,用一个正则表达式搜索字符串返回多行。事实上@kayman在语法上也帮了我一点忙!但令人遗憾的是,我从来没有能够让它在RapidMiner中正常工作,尽管它在其他几个正则表达式环境中工作得很好,所以我怀疑他们在与换行字符相关的正则表达式实现中存在一些缺陷或变化,导致多行模式或多句匹配不能正常工作。我最终通过在python中做所需的匹配位来解决问题。当应该有一个本地的RapidMiner解决方案时,这很烦人,但至少如果需要,仍然可以在一个更大的RapidMiner进程中完成。
    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
    TobiTee
  • kaymankayman 成员职位:662独角兽
    是的,正则表达式有很多方言,所以有时在正确的位置获得正确的语法可能有点烦人…
    @TobiTee谢谢你的安排。如果你不介意的话,你也可以把excel发给我(你可以用我的pm,或者把它作为附件添加到这里)。然后我可以重建整个流程

    TobiTee
  • TobiTeeTobiTee 成员职位:11贡献我
    @Telcontar120哦,好的,谢谢!这就解释了很多……
    我在其他2个环境中测试了语法,甚至在Rapidminer的编辑器中,一切似乎都有效。
    但是在运行这个过程之后,我只收到了第一个匹配。

    我希望@kaymanGot有一些神奇的建议。否则还有蟒蛇…

登录注册置评。