2010-08-10 50 views
1

我正在开发一个应用程序,我想使用android.text.util.Regex.WEB_URL_PATTERN作为Linkify的模式。但是,正如我注意到的,出于某种原因,我无法导入android.text.util.Regex无法导入android.text.util.Regex?它在哪里?

为什么这么说?有没有办法解决这个问题?

+0

FYI http://developer.android.com/reference/android/text/util/package-summary.html;那里没有'正则表达式'。 – polygenelubricants 2010-08-10 21:07:48

回答

0

你不能导入。

检查SRC代码,你会看到你会碰到这样的:

/** 
* @hide 
*/ 
public class Regex { 
+0

就是这样。只有Linkify类可以访问它。我没有看到@hide指令。 – Guilherme 2010-08-12 12:52:39

1

SDK中没有android.text.util.Regex。因此,它不能被导入。我甚至无法在当前的Android源代码中找到它,表明该类可能已在Android 2.2(或更早版本)中被删除。

这里是WEB_URL_PATTERN从源的早期版本的定义:

/** 
* Regular expression pattern to match RFC 1738 URLs 
* List accurate as of 2007/06/15. List taken from: 
* http://data.iana.org/TLD/tlds-alpha-by-domain.txt 
* This pattern is auto-generated by //device/tools/make-iana-tld-pattern.py 
*/ 
public static final Pattern WEB_URL_PATTERN 
    = Pattern.compile(
     "((?:(http|https|Http|Https):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)" 
     + "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_" 
     + "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?" 
     + "((?:(?:[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}\\.)+" // named host 
     + "(?:" // plus top level domain 
     + "(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])" 
     + "|(?:biz|b[abdefghijmnorstvwyz])" 
     + "|(?:cat|com|coop|c[acdfghiklmnoruvxyz])" 
     + "|d[ejkmoz]" 
     + "|(?:edu|e[cegrstu])" 
     + "|f[ijkmor]" 
     + "|(?:gov|g[abdefghilmnpqrstuwy])" 
     + "|h[kmnrtu]" 
     + "|(?:info|int|i[delmnoqrst])" 
     + "|(?:jobs|j[emop])" 
     + "|k[eghimnrwyz]" 
     + "|l[abcikrstuvy]" 
     + "|(?:mil|mobi|museum|m[acdghklmnopqrstuvwxyz])" 
     + "|(?:name|net|n[acefgilopruz])" 
     + "|(?:org|om)" 
     + "|(?:pro|p[aefghklmnrstwy])" 
     + "|qa" 
     + "|r[eouw]" 
     + "|s[abcdeghijklmnortuvyz]" 
     + "|(?:tel|travel|t[cdfghjklmnoprtvwz])" 
     + "|u[agkmsyz]" 
     + "|v[aceginu]" 
     + "|w[fs]" 
     + "|y[etu]" 
     + "|z[amw]))" 
     + "|(?:(?:25[0-5]|2[0-4]" // or ip address 
     + "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(?:25[0-5]|2[0-4][0-9]" 
     + "|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1]" 
     + "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}" 
     + "|[1-9][0-9]|[0-9])))" 
     + "(?:\\:\\d{1,5})?)" // plus option port number 
     + "(\\/(?:(?:[a-zA-Z0-9\\;\\/\\?\\:\\@\\&\\=\\#\\~" // plus option query params 
     + "\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?" 
     + "(?:\\b|$)"); // and finally, a word boundary or end of 
         // input. This is to stop foo.sure from 
         // matching as foo.su