gpt4 book ai didi

Java:每个字符出现0-1次的正则表达式

转载 作者:搜寻专家 更新时间:2023-10-31 08:26:47 25 4
gpt4 key购买 nike

问题:

  1. 匹配正则表达式的每个字符最多出现一次的单词。

  2. 单词必须有一定的大小,比方说“{2,5}”

  3. 单词中必须有一个特定的字符,比如字符“e”

我得到的:

word.matches("^[abcde]{2,5}$");

这匹配字符 a、b、c、d 和 e 出现 0..5 次的所有单词。因此,即使“abba”使用了字符“b”两次,“dead”使用了字符“d”两次,“abba”和“dead”这两个词还是匹配的。如果字符“e”在单词中,表达式也会忽略。

我想要的是每个字符最多使用一次的匹配,单词长度为 2-5 个字母,字符“e”在单词中。例如,合法匹配将是“bead”,因为每个字符最多使用一次并且字符“e”在单词中。

最佳答案

您可以使用如下表达式:

^(?=[abcd]*e)(?:([abcde])(?![abcde]*?\1)){2,5}$

一些评论:

^
(?=[abcd]*e) # make sure there is an "e"
(?:
([abcde]) # match a character and capture it
(?! # make sure it's not repeated
[abcde]*?
\1 # reference to the previously matched char
)
){2,5}
$

关于Java:每个字符出现0-1次的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933119/

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