问下关于匹配字符串解决方法

问下关于匹配字符串我在JDK帮助文档找到了startswith和endswith。这2个是首字母和结尾字符匹配。我想问下有

问下关于匹配字符串
我在JDK帮助文档找到了startswith和endswith。这2个是首字母和结尾字符匹配。
我想问下有没有什么是比如一串字符串asdfdghkjsahdlapshda
我的要求是只要这一串字符串除了首尾不是p并且中间有P的找出
有吗?

[解决办法]
可以用indexOf()再判断一下位置

[解决办法]
正则表达式
[解决办法]
这个意思吗?

Java code
System.out.println("asdfdghkjsahdlapshdpa".matches("^[^p].*p.*[^p]$"));
[解决办法]
探讨

这个意思吗?
Java code
System.out.println("asdfdghkjsahdlapshdpa".matches("^[^p].*P.*[^p]$"));