正则格式说明

以站点news.a.com适配到站点m.a.com为例:

适配PC链接地址为:http://news.a.com/09/1001/07/5KH8DE1F000120GR.html,

适配移动链接地址为:http://m.a.com/news/09/1001/07/5KH8DE1F000120GR.html

步骤一:确定适配链接中的可替换参数或者路径,得到其位置序号和类型。

适配PC链接:

根据网站自身url的层次结构,其中09,1001,07和5KH8DE1F000120GR为动态可替换的路径。除5KH8DE1F000120GR为字母和数字混合外,其余均为纯数字。

步骤二:根据可替换参数或路径的类型,得到链接的表达形式。

使用正则匹配符号(\d+)或者(\w+)表示该路径或参数。(\d+)表示纯数字字符串,(\w+)表示字母数字下划线组成的字符串。

步骤三:根据移动链接,以及可替换参数在步骤一中的位置序号,依次用${1},${2},……表示替换掉适配PC链接中的可替换参数或路径,得到适配后的移动链接的pattern形式。

至此,便得到了适配的规则:

http://news.a.com/(\d+)/(\d+)/(\d+)/(\w+).html

http://m.a.com/news/${1}/${2}/${3}/${4}.html

正则格式示例:
1、纯数字替换生成pattern例子:

eg1:url对应关系:

http://www.abc.com/26299483.html-> http://m.abc.com/26299483.html
pattern:
http://www.abc.com/([0-9]+).html-> http://m.abc.com/${1}.html

eg2:url对应关系:

http://www.abc.com/t26299483.html-> http://m.abc.com/26299483.html
pattern:
http://www.abc.com/t([0-9]+).html-> http://m.abc.com/${1}.html

2、纯字母替换生成pattern例子:

eg:url对应关系:

http://www.abc.com/fawliute/ -> http://m.abc.com/fawliute/
pattern:
http://www.abc.com/([a-zA-Z]+)/ -> http://m.abc.com/${1}/

3、字母和数字混合的字符串替换生成pattern的例子:

eg1:url对应关系:

http://www.abc.com/a1cc1n2q5y3/ -> http://m.abc.com/a1cc1n2q5y3/
pattern:
http://www.abc.com/((?:[a-zA-Z]+[0-9]+|[0-9]+[a-zA-Z]+)[a-zA-Z0-9]+)/ -> http://m.abc.com/${1}/

注意:字母和数字混合字符串,字母和数字必须交替出现至少1次

有效例子:a13b,23a9,da3bc99,42a1c

eg2:url对应关系:

http://news.abc.com/09/1001/07/5KH8DE1F000120GR.html
-> http://m.abc.com/news/09/1001/07/5KH8DE1F000120GR.html
pattern:
http://news.abc.com/([0-9]+)/([0-9]+)/([0-9]+)/([ a-zA-Z0-9]+).html
-> http://m.abc.com/news/${1}/${2}/${3}/${4}.html

4、对于字母和数字只交替出现一次的,可以分别用数字和字母进行正则替换:

eg:url对应关系:

http://www.abc.com/az123/ -> http://m.abc.com/az123/
pattern:
http://www.abc.com/([a-zA-Z]+)([0-9]+)/-> http://m.abc.com/${1}${2}/

5、中文字符串正则替换生成pattern例子:

eg:url对应关系:

http://www.abc.com/长城花园/ -> http://m.abc.com/长城花园/
pattern:
http://www.abc.com/((?:%[a-zA-Z0-9]{2,})+)/-> http://m.abc.com/${1}/

6、由’-‘或者’_’连接的数字或者字母替换生成pattern的例子:

eg:url对应关系:

http://www.abc.com/byd-c3/-> http://m.abc.com/byd-c3/
pattern:
http://www.abc.com/([a-zA-Z]+)-([a-zA-Z]+)([0-9]+)/->http://m.abc.com/${1}-${2}${3}/

注意:’-‘和’_’出现多次可以使用同样的方式处理
如:abc-134_x-1

7、对参数部分进行正则替换生成pattern的例子:

eg:url对应关系:

http://www.abc.com/article.html?act=test&id=123 -> http://m.abc.com/article.html?act=test&id=123
pattern:
http://www.abc.com/article\.php\?act=([^&]+)&id=([^&]+) -> http://m.abc.com/article.php?act=${1}&id=${2}

8、PC存在分页对应移动页面生成pattern的例子:

eg:url对应关系:

http://www.a.com/1234-1.htm http://www.a.com/1234-2.htm ->http://m.a.com/1234.htm
pattern:
http://www.a.com/([0-9]+)-([0-9]+).htm -> http://m.a.com/${1}.htm