字符串的java正则表达式

字符串的java正则表达式,java,regex,string,Java,Regex,String,我想为“S67-90”这样的字符串生成一个正则表达式。 我使用了语法“String pattern=“\w\d\d\w\d\d”“”,但我想指定第一个单词字符应始终以“S”开头。有人能帮我吗 我的示例代码是: String pattern = "\\w\\d\\d\\W\\d\\d"; Pattern p = Pattern.compile((pattern));

我想为“S67-90”这样的字符串生成一个正则表达式。 我使用了语法“String pattern=“\w\d\d\w\d\d”“”,但我想指定第一个单词字符应始终以“S”开头。有人能帮我吗

我的示例代码是:

                      String pattern = "\\w\\d\\d\\W\\d\\d";
                      Pattern p = Pattern.compile((pattern));
                      Matcher m = p.matcher(result);
                      if (m.find()) {
                      System.out.println("Yes!It is!");
                       }
                     else{
                     System.out.println("No!Its not  :(");
                         }

只需将模式中的第一个
\\w
替换为
S

  String pattern = "S\\d\\d\\W\\d\\d";

简单,放一个“S”:
String模式=“[S]\\d\\d\\W\\d\\d”

只需先更改\w为S即可

S\d\d\W\d\d

如果您想让您的匹配以字母
S
开头,您可以执行上述操作。但是,如果要指定字符串必须以
S
开头,则必须执行以下操作:
^S\\d\\d\\W\\d
。这将指示正则表达式引擎从头开始匹配。此正则表达式:
S\\d\\d\\W\\d\\d
将匹配
bla-bla S67-90
。此正则表达式:
^S\\d\\d\\W\\d
将只匹配以
S
开头的字符串,因此它将只匹配
S67-90

Awww。。!非常感谢。我已经试过了,但不确定我是否正确。超级。。!!这同样有效。我一直在找这个!谢谢@dmurali:您还可以将正则表达式重构为如下内容:
^S\\d{2}\\W\\d{2}
。这项工作应该与您建议的工作相同,只是不那么冗长。如果此答案回答了您的问题,则只需将其标记为:)