Java I';I’我想问一个正则表达式匹配的问题
“[loc]”必须包含在开头,后面的任何字符都无关紧要。如何用正则表达式表示它? ex) 我用的是Java,我真的想不起来。请求帮助,兄弟们Java I';I’我想问一个正则表达式匹配的问题,java,regex,Java,Regex,“[loc]”必须包含在开头,后面的任何字符都无关紧要。如何用正则表达式表示它? ex) 我用的是Java,我真的想不起来。请求帮助,兄弟们 String pattern = "\\[(loc)\\]"; String val = "[loc]seoul"; String val2 = "[loc]"; String val3 = &qu
String pattern = "\\[(loc)\\]";
String val = "[loc]seoul";
String val2 = "[loc]";
String val3 = "seoul";
boolean regex = Pattern.matches(pattern, val);
System.out.println(regex);
boolean regex2 = Pattern.matches(pattern, val2);
System.out.println(regex2);
boolean regex3 = Pattern.matches(pattern, val3);
System.out.println(regex3);
这很容易。
正则表达式应该类似于loc\w+
对于java,您可以将其解析为
loc\\w+
这应该有效:
^\[loc\]*
我在这里测试过:我知道你有一些字符串,一个关键字,必须出现在字符串的开头。在这种情况下,您需要
模式。引用来转义任何需要转义的特殊字符,并使用+
模式来匹配一个或多个字符。(如果你的第一个问题句是正确的,你也可以考虑<代码> */c>模式来匹配任何零和更多字符,你不关心什么是在<代码> [LOC] < /代码>。)也匹配断线,即<代码> .<代码>默认情况下不匹配,你需要通过<代码>模式。doasy< /Cord>选项,或者用<代码>(s)预置你的模式。
inline修饰符
解决方案如下所示
List vals=Arrays.asList(
“[loc]首尔”、[loc]、“首尔”
);
字符串关键字=“[loc]”;
字符串模式=模式。引号(关键字)+“+”;
Pattern p=Pattern.compile(Pattern,Pattern.DOTALL);
用于(字符串val:val){
System.out.println(val+“:\”+p.matcher(val.matches()+“\”);
}
看。输出:
那么字符串模式=“\\[loc\\].+”
呢?
String pattern = "\\[(loc)\\]";
String val = "[loc]seoul";
String val2 = "[loc]";
String val3 = "seoul";
boolean regex = Pattern.matches(pattern, val);
System.out.println(regex);
boolean regex2 = Pattern.matches(pattern, val2);
System.out.println(regex2);
boolean regex3 = Pattern.matches(pattern, val3);
System.out.println(regex3);
[loc]seoul: "true"
[loc]: "false"
seoul: "false"