用于在字符串中查找模式的正则表达式

时间:2017-05-09 18:17:06

标签: java regex regex-lookarounds regex-greedy regex-group

我可以使用switchaubcsp-loafsyvgvhv这样的字符串,它可能包含以下任何模式:s-loafp-loaf等。

以下是详细要求:

1st character - Any of [p,s,a,r,l], 
2nd character -> [-], Followed by Word [loaf].

在上面的示例中,搜索[p-loaf]时,找到文本p-loaf 11 索引开始,到索引 17 结束{ {1}}。

查找第一个字符为java.util.regex正则表达式是什么。

2 个答案:

答案 0 :(得分:3)

<object> 如果您希望单词从该单词开始,请将[psarl]-loaf添加到开头,如果您希望单词以结尾,请将^添加到结尾。

你可以在这里试试demo regex

答案 1 :(得分:1)

import java.util.regex.*;
public class RegexExamples {
    public static void main(String[] args) {
        RegexTag("devicexyzas-loafcdbdd", "[psarl][-]loaf");

    }

    public static void RegexTag(Stri`enter code here`ng Content, String PatternToMatch){
        Pattern pattern;
        try {
            pattern = Pattern.compile(PatternToMatch);
        }
        catch (PatternSyntaxException e)
        {
            System.err.println ("Regex syntax error: " + e.getMessage ());
            System.err.println ("Error description: " + e.getDescription ());
            System.err.println ("Error index: " + e.getIndex ());
            System.err.println ("Erroneous pattern: " + e.getPattern ());
            return;
        }

        Matcher matcher = pattern.matcher(Content);

        System.out.println ("Regex = " + Content);
        System.out.println ("Text = " + PatternToMatch);
        System.out.println ();

        while (matcher.find()) {
            System.out.println("Found the text \"" + matcher.group()
                    + "\" starting at " + matcher.start()
                    + " index and ending at index " + matcher.end());
        }
    }
}