9

私は一連のregexを実行しているプログラムに取り組んでおり、WebページからDOM内の日付を見つけようとしています。たとえば、www.engadget.com / 2010/07/19 / windows-phone- 7-in-depth-preview /では、「2010年7月19日」を正規表現と一致させます。アラビア語のWebページにアクセスするまで、複数の形式と言語で問題はありませんでした。例として、 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

なぜ試合が順不同で表示されるのですか?

4

1 に答える 1

2

コピーしたテキストのバイナリコードを見ると、文が実際に右から左に読んで保存されていることがわかります(したがって、右側の最初の文字がファイルの最初の文字になります)。
右から左に書かれているように見えるように、レンダリング中にテキストを元に戻します(これにより、この奇妙な選択動作も発生します)。

そのため、右から左に検索する必要があります。
さらに、番号が入れ替わっていないことに注意することが重要です。

例:

読める場合はファイル"txet emos 20 yluJ 2016 srahc modnar"
保存さ"random chars 2016 July 20 some text"れます。

于 2016-01-18T14:53:42.913 に答える