我有一个以下字符串:
MYLMFILLAAGCSKMYLLFINNAARPFASSTKAASTVVTPHHSYTSKPHHSTTSHCKSSD
Run Code Online (Sandbox Code Playgroud)
我想在每次遇到K或者R遇到时拆分这样的字符串,除非后面跟着a P.
因此,我想要以下输出:
MYLMFILLAAGCSK
MYLLFINNAARPFASSTK
AASTVVTPHHSYTSKPHHSTTSHCK
SSD
Run Code Online (Sandbox Code Playgroud)
起初,我尝试.split()在java中使用简单的函数,但我无法获得所需的结果.因为我真的不知道如何在.split()功能中提及它如果有一个P权利之后不分裂K或R.
我看过其他类似的问题,他们建议使用模式匹配,但我不知道如何在这种情况下使用它.
你可以使用拆分:
String[] parts = str.split("(?<=[KR])(?!P)");
Run Code Online (Sandbox Code Playgroud)
因为你想要保持你正在拆分的输入,所以你必须使用后面的一个看,它断言而不消耗.有两个环顾四周:
(?<=[KR])意思是"以前的字符是K或者R"(?!P)意思是"下一个字符是不是一个P"此正则表达式匹配之间要拆分的字符.
一些测试代码:
String str = "MYLMFILLAAGCSKMYLLFINNAARPFASSTKAASTVVTPHHSYTSKPHHSTTSHCKSSD";
Arrays.stream(str.split("(?<=[KR])(?!P)")).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
输出:
MYLMFILLAAGCSK
MYLLFINNAARPFASSTK
AASTVVTPHHSYTSKPHHSTTSHCK
SSD
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |