Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式捕获字符串之间的日期的解决方案是什么?_Java_Regex - Fatal编程技术网

Java 使用正则表达式捕获字符串之间的日期的解决方案是什么?

Java 使用正则表达式捕获字符串之间的日期的解决方案是什么?,java,regex,Java,Regex,如果我想把日期记在字串之间,谁能帮我一下吗 Print Date: 2011/12/23 (YYYY/MM/DD) 我只想在这里输入日期,我需要将格式转换为DD/MM/YYYY。如果您使用的是C# Regex readdate=new Regex(@“(?(?:\d{4}\d{2}))/(?\d{1,2})/(?\d{1,2})”; Console.WriteLine(DateTime.Parse(readdate.Match(“打印日期:2011/12/23”).ToString()); C

如果我想把日期记在字串之间,谁能帮我一下吗

Print Date: 2011/12/23 (YYYY/MM/DD)

我只想在这里输入日期,我需要将格式转换为DD/MM/YYYY。

如果您使用的是C#

Regex readdate=new Regex(@“(?(?:\d{4}\d{2}))/(?\d{1,2})/(?\d{1,2})”;
Console.WriteLine(DateTime.Parse(readdate.Match(“打印日期:2011/12/23”).ToString());
Console.ReadLine();
在perl中:

$str = 'Print Date: 2011/12/23 (YYYY/MM/DD)';
$date = $str =~ s#^\D+(\d{4})/\d{}/\d{2}.*$#$3/$2/$1#;
试试这个:

公共静态字符串convertDateString(字符串s){
Pattern p=Pattern.compile(“(\\d{4})/(\\d{2})/(\\d{2})”;
匹配器m=匹配器p;
if(m.find()){
返回m.group(3)+“/”+m.group(2)+“/”+m.group(1);
}
返回null;
}
// ...
convertDateString(“2011/12/23”);//=>"23/12/2011"
或者,如果您只想“就地”完成,请尝试以下操作:

public static String convertDateString2(String s) {
  StringBuilder buf = new StringBuilder();
  Pattern p = Pattern.compile("(\\d{4})/(\\d{2})/(\\d{2})");
  Matcher m = p.matcher(s);
  if (m.find()) {
    buf.append(s.substring(0, m.start(1)));
    buf.append(m.group(3)).append("/");
    buf.append(m.group(2)).append("/");
    buf.append(m.group(1)).append(s.substring(m.end(3)));
    return buf.toString();
  }
  return null;
}
// ...
convertDateString2("Print Date: 2011/12/23.");
// => "Print Date: 23/12/2011."

@Sambasivareddyneerugati:我不懂Java,但是,当然,它可以很容易地翻译。你可以编辑你的问题并添加正确的标签,而不是大喊大叫(现在DSM已经为你做了)。如果你读过regex标签的FAQ,你甚至在发帖之前就知道了。你好,@sambasivareddyneerugati,欢迎来到StackOverflow!请阅读,我们的社区将变得更加有用、有用和友好@Sambasivaredyneerugati:点击旁边的复选框,您可以随意投票和/或接受正确答案。
public static String convertDateString2(String s) {
  StringBuilder buf = new StringBuilder();
  Pattern p = Pattern.compile("(\\d{4})/(\\d{2})/(\\d{2})");
  Matcher m = p.matcher(s);
  if (m.find()) {
    buf.append(s.substring(0, m.start(1)));
    buf.append(m.group(3)).append("/");
    buf.append(m.group(2)).append("/");
    buf.append(m.group(1)).append(s.substring(m.end(3)));
    return buf.toString();
  }
  return null;
}
// ...
convertDateString2("Print Date: 2011/12/23.");
// => "Print Date: 23/12/2011."