아랍어 날짜 구문 분석을 위한 정규식을 만드는 방법
문제
저는 웹페이지의 DOM 내에서 날짜를 찾으려고 일련의 정규식을 실행하는 프로그램을 개발 중입니다.예를 들어, www.engadget.com/2010/07/19/windows-phone-7-in-length-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"));
}
나에게 준다
18 تموز 2010
18
تموز
2010
일치 항목이 순서대로 표시되지 않는 이유는 무엇입니까?
해결책
복사한 텍스트의 이진 코드를 보면 문장이 실제로 오른쪽에서 왼쪽으로 읽혀 저장되는 것을 볼 수 있습니다(따라서 오른쪽의 첫 글자가 파일의 첫 글자가 됩니다).
오른쪽에서 왼쪽으로 쓰여진 것처럼 보이도록 렌더링하는 동안 텍스트를 다시 변경합니다(이로 인해 이상한 선택 동작도 발생합니다).
그러므로 오른쪽에서 왼쪽으로 검색해야 합니다.
또한 숫자가 전환되지 않는다는 점을 알아두는 것이 중요합니다.
예:
읽을 수 있다면 "txet emos 20 yluJ 2016 srahc modnar"
,
다음과 같이 저장됩니다 "random chars 2016 July 20 some text"
파일에서.