一、正则格式说明
以站点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.html?act=([^&]+)&id=([^&]+) -> http://m.abc.com/article.html?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
© Copyright 2023 深圳蓝晒科技有限公司. 粤ICP备2023054553号-1