gpt4 book ai didi

java - 正则表达式模式不会匹配任何内容

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

我希望我的 mPattern 在搜索字符串中匹配 FFF1FFF3 字符串至少 4 次。我已经编写了两个模式版本,但它们都没有给出任何匹配。

Pattern mPattern = Pattern.compile("(FFF1|FFF3){4,}");

版本2:

Pattern mPattern = Pattern.compile("(FFF1{4,}|FFF3{4,})");

搜索字符串是(示例):

0DCB1C992B37173740244875C143D50ACDBA0422CD01D73D3C78F05ED7BBC2B33F9D78A7FFF342C0241C6B56B11EC1867984C20F42A4FAC5B9C0
42220314C006D94E124673CD4CC27FC2FCE12215410F12086BE5A3EDFC6DB2BEB0EAEC6EAAA4BF997FFB3337F914AB1A89C808EA6D338912D72E
99CE11E899999D3AE1092590FB2B71D736DC544B0AFD1035A3FFF340C00E178B62E5BE48C46F04B8EFC106AE3F17DDE08B5FD48672EBEABB216A
8438B6FB3B33BF91D3F3EBFCE14184320532ABA37FFD59BFF6ABAD1AA9AADEE73220679D2C7DDBAB766433A99D8CA752B383067465691750A24A
00F32A5078E29258F6D87A620AFFF342C00A158B22E5BE5944BAE8BA2C54739BE486B719A76DF5FD984D5257DBEAC43B238598EFAB3592DE8DD5

最佳答案

模式 "(FFF1|FFF3){4,}" 将匹配相邻放置的 FFF1FFF3,重复次数为 4或者更多。我想多次出现之间可以有任何字符。在这种情况下,请使用以下正则表达式:

"^(?:.*?(FFF1|FFF3)){4,}.*$"

.*? 匹配任何字符,直到下一个 FFF1FFF3,然后匹配 FFF1|FFF3。重复此序列 4 次或更多次(应用于整个非捕获组)。

您可以直接使用上面的模式 String#matches(String)方法。或者,如果您正在构建 PatternMatcher 对象,则只需将以下模式与 Matcher#find() 结合使用即可方法:

"(?:.*?(FFF1|FFF3)){4,}"
<小时/>

工作代码:

String str = "...";  // initialize

Pattern mPattern = Pattern.compile("(?x)" + // Ignore whitespace
"(?: " + // Non-capturing group
" .*? " + // 0 or more repetition of any character
" (FFF1|FFF3) " + // FFF1 or FFF3
"){4,} " // Group close. Match group 4 or more times
);

Matcher matcher = mPattern.matcher(str);
System.out.println(matcher.find());

关于java - 正则表达式模式不会匹配任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19539147/

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