首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Web 开发
JavaScript
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
求一个正则表达式
[无满意答案结帖,结帖人:TsungLee]
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
结帖率:
100.00%
发表于:
2008-08-21 15:10:45
楼主
字符串由数字、大小写字母和百分号组成,长度不定,例如:%E7%AF%AE%E7%90%83
怎样写正则表达式呢? 我试过.+ 但是不行。
我是用在urlrewriter.xml里面的
问题点数:
20
回复次数:
36
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wcwtitxu
痞子
等级:
可用分等级:
富农
总技术分:
6269
总技术分排名:
3430
发表于:
2008-08-21 19:53:49
1
楼 得分:
0
JScript code
/
(?:%[\da-f]{2})+
/
i
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhengpeiyong
~~我也曾有过一双美丽的翅膀,但我没用它在天上翱翔,而是放在锅里炖汤!~~
等级:
可用分等级:
中农
总技术分:
577
总技术分排名:
29971
发表于:
2008-08-21 20:44:24
2
楼 得分:
0
[0-9a-zA-Z%]
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wcwtitxu
痞子
等级:
可用分等级:
富农
总技术分:
6269
总技术分排名:
3430
发表于:
2008-08-21 21:05:01
3
楼 得分:
0
我上面回答错误。
抱歉
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhsp1029
奶牛
等级:
可用分等级:
贫农
总技术分:
108
总技术分排名:
103839
发表于:
2008-08-21 21:45:13
4
楼 得分:
0
/(%\w{2})+/
例如:
<script language="javascript">
var str = "%E7%AF%AE%E7%90%83";
if(str.match(/(%\w{2})+/))
{
alert("match");
}
else
{
alert("not match");
}
</script>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
sxn19811006
等级:
可用分等级:
中农
总技术分:
1026
总技术分排名:
19713
发表于:
2008-08-22 09:40:41
5
楼 得分:
0
/^(%\w{2})+$/
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-22 11:50:22
6
楼 得分:
0
可能我没说清楚。字符串的长度和排列顺序都是不定的,像这个:9jb%2Fh98hogMYTGYibWSqwA%3D%3D
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mingxuan3000
铭轩
等级:
可用分等级:
中农
总技术分:
33642
总技术分排名:
274
发表于:
2008-08-22 11:56:03
7
楼 得分:
0
用反证法
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-22 12:18:34
8
楼 得分:
0
反证法?怎么用呢
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
buddyboyBB
士大夫
等级:
可用分等级:
贫农
总技术分:
157
总技术分排名:
69687
发表于:
2008-08-22 17:19:28
9
楼 得分:
0
反义:[^%a-z0-9A-Z]
如果这个返回的是不为空则说明不匹配
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
buddyboyBB
士大夫
等级:
可用分等级:
贫农
总技术分:
157
总技术分排名:
69687
发表于:
2008-08-22 17:21:08
10
楼 得分:
0
[^%a-z0-9A-Z]
例如:
<script language="javascript">
var str = "%E7%AF%AE%E7%90%83";
if(str.match(/[^%a-z0-9A-Z]/)
{
alert("not match");
}
else
{
alert(" match");
}
</script>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
buddyboyBB
士大夫
等级:
可用分等级:
贫农
总技术分:
157
总技术分排名:
69687
发表于:
2008-08-22 17:26:40
11
楼 得分:
0
反义写错了这样:
[^(%a-z0-9A-Z)]
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 13:49:42
12
楼 得分:
0
还是不太行。
我想匹配这样的路径/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm
在urlrewrite.xml里面这样写
<rule>
<from>/(.+).htm </from>
<to>/detail.jsp?q=$1 </to>
</rule>
为什么总是不行呢?请高手指教。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 13:59:28
13
楼 得分:
0
^[a-z0-9A-Z\%]$
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luxu001207
☞ 笨笨
等级:
可用分等级:
富农
总技术分:
19447
总技术分排名:
865
发表于:
2008-08-23 14:18:02
14
楼 得分:
0
引用 13 楼 chinmo 的回复:
^[a-z0-9A-Z\%]$
^[a-z0-9A-Z\%]*$
纠正一下,嘿嘿,哈哈!~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luxu001207
☞ 笨笨
等级:
可用分等级:
富农
总技术分:
19447
总技术分排名:
865
发表于:
2008-08-23 14:18:50
15
楼 得分:
0
^[a-z\dA-Z\%]+$
不允许为空的话,用这个
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 15:06:23
16
楼 得分:
0
真不知道是什么问题了,以上各位的试过都没用。现在发现如果用(.+) ,只要字符串里面没有%2F就可以。这个%2F是不是空格的意思?怎么匹配它呢?我这样写((.|(%2F))+)也不行。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ncm0227120
少年的IT情缘
等级:
可用分等级:
贫农
总技术分:
36
总技术分排名:
145598
发表于:
2008-08-23 15:26:24
17
楼 得分:
0
<script language="javascript">
function show()
{
var s=/^[a-zA-Z0-9%]+$/;
var value=document.getElementById("txt").value;//获取文本的值
if(s.test(value)==false)
{
alert("NO");
}else
{
alert("OK");
}
}
</script>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 16:32:57
18
楼 得分:
0
肯定是你传递过来的值已经编译
才导致这样的
比如%20就是URL编码的空格
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 16:34:40
19
楼 得分:
0
%2F是URL编码编译后是/
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 16:52:46
20
楼 得分:
0
那怎么解决呢?如果我直接用/detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D 是可以访问的,但换成/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm 就不行了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 16:57:40
21
楼 得分:
0
那是当然的啊
因为你出现了字母和数字还有%以外的字符
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 17:06:43
22
楼 得分:
0
从字面看,要匹配的就只有Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D,没有其他字符啊?如果是传递过来的值已经编译,那么%3D这些肯定也会有影响的,但现在包含%3D、%2B这些都可以,唯独是%2F不行。为什么会这样呢?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 17:33:47
23
楼 得分:
0
你把那些值输出
看下不就知道了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 17:36:55
24
楼 得分:
0
我感觉是你的理解错误,导致你说出来的东西舞蹈别人了
Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D你这个反编译过来是:
Bja7orTrlHq1hr/OUTO7XQ==
/detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D 你这个是在地址栏上显示的
但是在你接受q的值的时候,他实际是Bja7orTrlHq1hr/OUTO7XQ==而不是Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 17:54:40
25
楼 得分:
0
可能我也是没说清楚。接受q值的时候,得到的确实是Bja7orTrlHq1hr/OUTO7XQ== ,这个没错的。但现在问题是,用正则表达式转向的时候,不能把/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm 转为/detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D ,总是找不到页面。按我的理解,正则表达式匹配的时候,应该不会把它编译成Bja7orTrlHq1hr/OUTO7XQ== 吧。这个编译应该只在后面的java程序取q值的时候发生。不知道这样理解对不对。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
TsungLee
Lee
等级:
可用分等级:
中农
总技术分:
153
总技术分排名:
70701
发表于:
2008-08-23 17:56:58
26
楼 得分:
0
正则表达式匹配的时候,关注的应该只是字符串由什么组成。至于这个字符串可以编译成什么,它应该不管吧。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 19:57:20
27
楼 得分:
0
晕,你不管字符串由什么组成怎么能匹配得对啊???
包含/这个在内就要断开了出错了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100
2
6
2
发表于:
2008-08-23 19:58:30
28
楼 得分:
0
要匹配/这个必须用\/这样来匹配
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chinmo
藏*无限
等级:
可用分等级:
富农
总技术分:
74131
总技术分排名:
100