我正在尝试构建一个正则表达式,但它没有给我正确的值
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");
}
答案 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();