繁体   English   中英

Java:如何使用RegEx解析和验证字符串?

[英]Java: How can I parse and validate a string using RegEx?

我有一个弦

some-text+some-text*some-text|some-text

其中+some-text是可选的。

例:

1) master+single*stuff|Europe (有效!)

2) slave*stuff|Finland (有效!)

3) master+single*stuff (错误!)

我需要定义此字符串是否有效。

正则表达式仅适用于简单的有限情况。

如果您的需求更复杂,那么语法和词法分析器/解析器是一个更好的主意。

对于您的情况:

package regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * RegexDriver
 * @author Michael
 * @link http://stackoverflow.com/questions/29759673/java-how-can-i-parse-and-validate-a-string-using-regex/29759694?noredirect=1#comment47651768_29759694
 * @since 4/20/2015 6:53 PM
 */
public class RegexDriver {

    public static final String PATTERN = "^(\\w+[+])?\\w+[*]\\w+[|]\\w+$";

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(PATTERN);
        for (String arg: args) {
            Matcher matcher = pattern.matcher(arg);
            boolean isMatch = matcher.matches();
            System.out.println(String.format("'%s' match? %s", arg, isMatch));
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM