我可以使用什么regex/pattern来查找字符串中的以下模式?
#nnnn:
Run Code Online (Sandbox Code Playgroud)
nnnn可以是任何 4 位长数字,只要它由主题标签和冒号包围即可。
我已经尝试过下面的代码:
#nnnn:
Run Code Online (Sandbox Code Playgroud)
它确实有效,但它匹配其他字符串,如下所示:
String string = "#8226:";
if(string.matches( ".*\\d:.*" )) {
System.out.println( "Yes" );
}
Run Code Online (Sandbox Code Playgroud)
我希望它只匹配问题顶部的模式。
谁能告诉我我哪里错了?
可以用正则表达式来完成
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FindPattern {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("#[0-9]{4}:");
String text = "#1233:#3433:abc#3993: #a343:___#8888:ki";
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
#1233:
#3433:
#3993:
#8888:
Run Code Online (Sandbox Code Playgroud)