正则表达式[a-zA-Z] {0,2}

时间:2017-02-03 13:06:43

标签: java regex

我正在尝试构建一个正则表达式,但它没有给我正确的值

Bookss应符合以下条件:

Books
Bookss
Booksss

,即字符串可以与少于或多于或等于的一个字符匹配

我尝试为上述情况构建正则表达式,但它与

不匹配

我试过的正则表达式是:

String str="Books"

Pattern p=Pattern.compile(str.substring(0,input.length()-1)+"[a-zA-Z]{0,2}"

Matcher matcher = p.matcher(str);

if (matcher.find())
{
    System.out.println("Found");
}   

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式完成此操作,例如

/Book.?.?.?\b/

如:

String str="Books"

Pattern p=Pattern.compile(str.substring(0,input.length()-1)+".?.?.?\b";

Matcher matcher = p.matcher(str);

if (matcher.find())
{
    System.out.println("Found");
}   

表达式

.?

匹配任何字符的零个或一个实例,而

\b

将其限制为单词的边界。 (如果字符串输入中有多个空格,请将其关闭)

所以,

.?.?.?\b

将匹配它们所附加单词末尾的任意三个字符。

编辑:错过了处理一个字符少于或多的要求。

答案 1 :(得分:0)

尝试以下一个..

示例代码

 String str="Booksss";

    Pattern p=Pattern.compile(str.substring(0,str.length()-1)+".?{0,2}");
    System.out.println(p);

    Matcher matcher = p.matcher(str);

if (matcher.find())
{
    System.out.println("Found");
}
  }
}

希望它会对你有所帮助。

答案 2 :(得分:0)

我找到了解决方案。无论如何,谢谢大家回答

var transcripts = objs
    // The following uses the JSONPath recursive descent operator ".." to pick out all properties named "transcript".
    .SelectMany(o => o.SelectTokens("..transcript")) 
    .Select(t => t.ToString())
    .ToList();