gpt4 book ai didi

java - 如何忽略 "--"但不忽略 "-"

转载 作者:行者123 更新时间:2023-12-01 14:01:13 25 4
gpt4 key购买 nike

我在 Java 中使用 useDelimiter 方法来忽略除 - 之外的所有非字母。这是因为 - 用于绑定(bind)诸如 “三足” 之类的单词。问题在于 -- 在文本中的单词前后多次出现。所以我想忽略所有出现的 --,但不是 -

这就是我的正则表达式模式到目前为止的样子: useDelimiter("[[^a-zA-Z&&[^'-]&&\\s]+");

编辑:解决了!这就是我所做的:useDelimiter("[[^a-zA-Z&&[^'&&[^-{1}]]]\\s]+"); - 对此正则表达式的任何改进将不胜感激。

双重编辑 - 我没有解决它。但杰瑞确实查看了他的回答以获得正确答案

最佳答案

我认为你的正则表达式有点奇怪。本身不需要交集(修复丢失的 ] 后):

[[^a-zA-Z]&&[^'-]&&\\s]

[^a-zA-Z][^'-] 的交集与 [^a-zA-Z'-] 相同\\s 的交集仅给出 \\s

也许你的意思是:

useDelimiter("[^a-zA-Z'-[\\s]]+");

然后,如果我基于您的正则表达式构建,您可以使用交替和非捕获组添加 --:

useDelimiter("(?:[^a-zA-Z'-[\\s]]|--)+");

示例字符串:

Hello! World! Seems that... -- Hey! That's my three-legged table!

将拆分为:

Hello
World
Seems
that
Hey
That's
my
three-legged
table

ideone demo

编辑:当前正则表达式的修改可能是:

(?:[[^a-zA-Z&&[^'&&[^-]]]\\s]|--)+

关于java - 如何忽略 "--"但不忽略 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337202/

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