gpt4 book ai didi

regex - 正则表达式不包括特定的可选后缀

转载 作者:行者123 更新时间:2023-12-04 12:31:52 25 4
gpt4 key购买 nike

我愿意根据短语中间的 [Ssinn] 匹配单词:

Sinn, Sinne, Sinnes, sinnbelebte, sinnbelebten, sinnbelebter, sinnerfüllenden, sinnerfüllendem, Sinnesgehalt, sinngebenden, Sinnesbestände, Sinnlosigkeit, Sinnesmodifikation, sinnleeren Zeichen, sinnverleihende Akte, Widersinn, widersinnigen Ausdruck

但要排除以下以-lich后缀开头的

Sinnlichkeit

例如在以下短语中,singebenden 应该匹配但 not sinnliche

Also im sinngebenden Aktcharakter, der ein ganz anderer ist, je nachdem das Interesse auf das sinnliche Zeichen oder auf das mittels des Zeichens vorstellig gemachte (wenn auch durch keinerlei Phantasievorstellung verbildlichte) Objekt gerichtet ist, liegt die Bedeutung

到目前为止,我想出了

(?:\S+)?(?:[Ss]inn)(?:\S+)?

但是为了排除lich后缀,我试过了

(?:\S+)?(?:[Ss]inn)((?!lich)(?:\S+))?

这似乎不适用于 Javascript RegEx...

谢谢!

最佳答案

建议的正则表达式是

\b[Ss]inn(?!lich)[a-z]*\b

当然,如果您想允许其他字符,例如连字符或德语字母表中的字母,例如 äöü,在单词的其余部分,只需将它们添加到字符集 [a-z] 或相应地更改它。

请注意,如果您使用的正则表达式实现不将非 ASCII 字母视为单词字符,则使用单词边界断言 \b 将不可靠。

另一种策略可能是使用否定的lookbehind来断言[Ss]inn之前没有德语字母表中的字符,并省略尾随的\b 。例如:

(?<![a-zA-ZäöüßÄÖÜẞ])[Ss]inn(?!lich)[a-zA-ZäöüßÄÖÜẞ]*

这仍然与 Sinn4U 中的 Sinn 匹配,但这可能不是问题,必要时可以通过前瞻来禁止。

不清楚你为什么用 (?:\S+)? 开始你的正则表达式,因为它等同于 \S*,表示匹配零或更多非空白字符。

关于regex - 正则表达式不包括特定的可选后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68518251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com