gpt4 book ai didi

java - 正则表达式 : Consecutive Repetitions with a Letter In Between

转载 作者:行者123 更新时间:2023-11-30 07:19:02 26 4
gpt4 key购买 nike

我正在尝试使用正则表达式解决问题。我正在使用 Java 正则表达式,它显然类似于 Perl 中的正则表达式。

我想搜索一个字符串,该字符串包含 1-9 中的单个数字,连续重复 3 次或更多次,或者在重复之间使用单个字母“w”。

例如。 12333、123w3、12ww3、ww123 应该都能成功匹配,但 12345、1234w、1323w 不会。

我尝试了模式“[[0-9]w]{3,}”,但我现在明白为什么这绝对是不正确的。有人可以给我一些线索来构建符合我要求的搜索模式吗?

最佳答案

如果我正确理解 w 是一个通配符(因为我不确定您所写的内容 - 更多是您提供的示例)那么这个正则表达式应该可以工作...

([1-9])(\1|w){2,}|w([1-9])(\3|w)+|ww([1-9])\5*

这可能不是最优雅的解决方案,但应该可以工作,并且可以分解成这样的部分...

           # matches that don't start with wildcards
([1-9]) # get a digit, and capture for future reference
(\1|w){2,} # the captured digit, or the letter w, 2 or more times
| # or, matches that start with a single w
w # match a w
([1-9]) # get a digit, and capture for future reference
(\3|w)+ # get one or more of the captured digit, or letter w
| # or, matches starting with two w
ww # get two w
([1-9]) # get a digit, and capture for future reference
\5* # get all the successive captured digits

这也应该有效...

([1-9])(\1|w){2,}|w([0-9](\3|w)|w[0-9])

关于java - 正则表达式 : Consecutive Repetitions with a Letter In Between,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14919745/

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