- 例子一
gid=x010740202ff13a179054bc520001112de56b2113340&sver=9.3.00&ua=SohuVideoMobile%2F9.3.00%20(Platform%2F6)&buildNo=12201035&ssl=1&poid=1&uid=SV_6Kkg-k9-gDfIGgr6kfbBsMG-F4TXfimICf9DMFywMUREahpuU0JMKX17BQ2lPQA0&partner=6581&passport=3B74C54A84241EB1A62779F97791DB6A%40qq.sohu.com&api_key=9854b2afa779e1a6bff1962447a09dbd&appid=107402&abmode=1B_35B_43A_79B_75B_87A_91B_132A_137A_142B_147B_9998C&plat=6&auth_token=eyJleHAiOjE2NDgwMjI1ODkwNTMsImlhdCI6MTY0MDI0NjU4OTA1MywicHAiOiIzQjc0QzU0QTg0MjQxRUIxQTYyNzc5Rjk3NzkxREI2QUBxcS5zb2h1LmNvbSIsInRrIjoiU0QxbHlmMFMzVWgzYmVtd2R3QldUWWhmUmxNZ0pMRGoiLCJ2IjowfQ.U2dH0-t9S7etZTKIfzIAMJXCrOjSMjX4LOBGPumgRPQ&order_sn=2112235690713BUQILVY
passport=1437329281046073344%40sohu.com&buildNo=12201035&appid=107402&api_key=9854b2afa779e1a6bff1962447a09dbd&poid=1&auth_token=eyJleHAiOjE2NDgwMjI1OTIwNTQsImlhdCI6MTY0MDI0NjU5MjA1NCwicHAiOiIxNDM3MzI5MjgxMDQ2MDczMzQ0QHNvaHUuY29tIiwidGsiOiJNODh6SXljNlVBQ2NPdjdydU15YmRKOWVRYUFsbjRTWSIsInYiOjB9.v_nGQWMTRCQAECXLAiDnwcIhFj8uZOBFXRs7EuAfhws&plat=6&sver=9.3.00&ssl=1&gid=x010740202ff14746f6d1841800034746fef4089d5c0&order_sn=2112235690696SYJQSYY&abmode=1A_35A_43A_79B_75A_87B_91A_132A_137A_142A_147A_9998A&ua=SohuVideoMobile%2F9.3.00%20(Platform%2F6)&uid=SV_MKDcyz2ksOo-NGKC430Mf-SnwIgr4YcaZEkuJQAD0scqvs71j90WcZBKBlsjtSVH&partner=750
这两个都包含order_sn参数,我们需要把参数值截取出来,可以通过正则表达式替换就行,很好实现
(.+)(order_sn=[0-9a-zA-Z]{20})(.*)
替换成
$1
快速高效
- “http://([a-z]+\.)+[a-z]+”
[a-z]+ 表示多个a-z的字符
\. 表示普通的. 因为.在正则表达式中表示任意字符
([a-z]+\.)+ 表示多个括号中的字符串
java中正则表达式Pattern与Matcher类使用详解(find、group)
- “[a-zA-Z‘'\-]{1,30}”
“\-” 表示的一个普通的-
这个正则表达的意思是:识别一个最多30个英文的字符串
public static int getCharCount(CharSequence s) {
String regex = "[a-zA-Z‘'\\-]{1,30}";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
int wordCount = 0;
int notWordCount = s.length();
int start = 0;
while(m.find(start)) {
wordCount ++;
start = m.end();
notWordCount -= m.group().length();
}
return notWordCount + wordCount;
}
简单理解,把一个英文单词当作一个“字符”计数