我正在开发一个运行一系列正则表达式的程序,试图从网页中查找DOM中的日期.例如,在www.engadget.com/2010/07/19/windows-phone-7-in-depth-preview/,我会将"2010年7月19日"与我的正则表达相匹配.在我访问阿拉伯语网页之前,各种格式和语言的情况都很顺利.例如,请考虑http://islammaktoob.maktoobblog.com/.2010年7月18日的日期显示在帖子顶部的阿拉伯语中,但我无法弄清楚如何匹配它.有没有人有匹配阿拉伯语日期的经验?如果有人可以发布他们用来匹配该阿拉伯语日期的示例或正则表达式,那将非常有帮助.谢谢!
越来越近:
String fromTheSite = "????? ????? ????? ? ?? 18 ???? 2010 ??????: 09:42 ?";
NamedMatcher infoMatcher = NamedPattern.compile("(?<Day>[0-3]?[0-9]) (?<Month>?????|??????|????|?????|?????|????|?????|?????|?????|?????|?????|??????|??????|??????|??????|????? ??????|????|????|?????|????|??????|????|??|?????|????? ?????|????? ??????|????? ?????) (?<Year>[1-2][0-9][0-9][0-9]) ", Pattern.CANON_EQ).matcher(fromTheSite);
while(infoMatcher.find()){
System.out.println(infoMatcher.group());
System.out.println(infoMatcher.group("Day"));
System.out.println(infoMatcher.group("Month"));
System.out.println(infoMatcher.group("Year"));
}
Run Code Online (Sandbox Code Playgroud)
给我
18 ???? 2010
18
????
2010
Run Code Online (Sandbox Code Playgroud)
为什么匹配出现乱序?
作为问题集的一部分,我必须按升序排序3个数字.一个简单的任务,但由于某种原因,我没有得到预期的结果.不允许使用数组.以下是我的代码; 我在这里链接了我的流程图.我无法让程序对5个数字进行排序,例如5,5和-4.当我尝试这种情况时,这是输出:
Enter three numbers.
Run Code Online (Sandbox Code Playgroud)
按顺序-0.04 5.0 5.0订购5.0 -0.04 5.0
如果我让那个工作,我不能得到23,0,39的情况进行排序.不确定我是否因为这么多案件而过度复杂化; 我觉得我的流程图涵盖了所有可能性.提前致谢!
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.print("Enter three numbers.");
double x = reader.nextDouble();
double y = reader.nextDouble();
double z = reader.nextDouble();
if (x >= y){
if (y >= z)
System.out.print("In order " + z + " "+ y + " " + x);
if (z >= x)
System.out.print("In order " + y + " "+ x …Run Code Online (Sandbox Code Playgroud)