正则表达式仅查找 3 次出现的 |

问题描述 投票:0回答:1

我需要检查只有 3 个 | 的字符串。如果多于 3 或少于 3 则不应通过。

例如,

  1. a|b|c|d -> 通过
  2. a|b|c -> 失败
  3. a|b|c|d|e -> 失败

请帮助我获取正则表达式。

java regex substring
1个回答
0
投票

您应该使用正则表达式:

"^[^|]*\\|[^|]*\\|[^|]*\\|[^|]*$"

import java.util.regex.Pattern;

public class PipeChecker {
    public static void main(String[] args) {
        String regex = "^[^|]*\\|[^|]*\\|[^|]*\\|[^|]*$";
        
        Pattern pattern = Pattern.compile(regex);

        String[] testStrings = {
            "a|b|c|d",   // Pass
            "a|b|c",     // Fail
            "a|b|c|d|e"  // Fail
        };

        for (String str : testStrings) {
            if (pattern.matcher(str).matches()) {
                System.out.println("'" + str + "' -> Pass");
            } else {
                System.out.println("'" + str + "' -> Fail");
            }
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.