重分(200)出击:正则表达式问题。求一个正则表达式。

软猫克鲁 2003-12-17 08:17:38
要求用一个正则表达式实现---只能是ASII码,并且不能含空格及如下字符: <>,:;'"+=@\[]


该问题困扰了我N久,一旦解决重分送出。

以下是我写的
1。不能输入特殊字符的:
^[^/\[\]\;\:\=\,\+\*\?\@\x3c\x3e\x22\x20]*$
2。ASII码
^[\x00-\x7F]*$

3。结合起来呢?
期待中……
...全文
116 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChuRenYG 2003-12-21
  • 打赏
  • 举报
回复
深奥
dailindl 2003-12-21
  • 打赏
  • 举报
回复
学习,up
软猫克鲁 2003-12-21
  • 打赏
  • 举报
回复
不行啊:(
4y8 2003-12-19
  • 打赏
  • 举报
回复
这么试一试

^[^/\[\]\;\:\=\,\+\*\?\@\x3c\x3e\x22\x20\x00-\x7F]*$

4y8 2003-12-19
  • 打赏
  • 举报
回复
字符/
意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。
例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示
匹配一个单词的分界线。
或者:
对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。
例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配’a*’。

字符^
意义:表示匹配的字符必须在最前边。
例如:/^A/不匹配"an A,"中的’A’,但匹配"An A."中最前面的’A’。

字符$
意义:与^类似,匹配最末的字符。
例如:/t$/不匹配"eater"中的’t’,但匹配"eat"中的’t’。

字符*
意义:匹配*前面的字符0次或n次。
例如:/bo*/匹配"A ghost booooed"中的’boooo’或"A bird warbled"中的’b’,但不匹配"Agoat g
runted"中的任何字符。

字符+
意义:匹配+号前面的字符1次或n次。等价于{ 1, }。
例如:/a+/匹配"candy"中的’a’和"caaaaaaandy."中的所有’a’。

字符?
意义:匹配?前面的字符0次或1次。
例如:/e?le?/匹配"angel"中的’el’和"angle."中的’le’。

字符.
意义:(小数点)匹配除换行符外的所有单个的字符。
例如:/.n/匹配"nay, an apple is on the tree"中的’an’和’on’,但不匹配’nay’。


字符(x)
意义:匹配’x’并记录匹配的值。
例如:/(foo)/匹配和记录"foo bar."中的’foo’。匹配子串能被结果数组中的素[1], ...,[n] 返
回,或被RegExp对象的属性, ..., 返回。

字符x│y
意义:匹配’x’或者’y’。
例如:/green│red/匹配"green apple"中的’green’和"red apple."中的’red’。

字符{ n }
意义:这里的n是一个正整数。匹配前面的n个字符。
例如:/a{ 2 }/不匹配"candy,"中的’a’,但匹配"caandy," 中的所有’a’和"caaandy."中前面的两个’a’。

字符{ n, }
意义:这里的n是一个正整数。匹配至少n个前面的字符。
例如:/a{ 2, }不匹配"candy"中的’a’,但匹配"caandy"中的所有’a’和"caaaaaaandy."中的所有’a’

字符{ n,m }
意义:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。
例如:/a{ 1,3 }/不匹配"cndy"中的任何字符,但匹配 "candy,"中的’a’,"caandy," 中的前面两个
’a’和"caaaaaaandy"中前面的三个’a’,注意:即使"caaaaaaandy" 中有很多个’a’,但只匹配前面的三 个’a’即"aaa"。

字符[xyz]
意义:一字符列表,匹配列出中的任一字符。你可以通过连字符-指出一个字符范围。
例如:[abcd]跟[a-c]一样。它们匹配"brisket"中的’b’和"ache"中的’c’。

字符[^xyz]
意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符-指出一 字符范围。
例如:[^abc]和[^a-c]等价,它们最早匹配"brisket"中的’r’和"chop."中的’h’。

字符
意义:匹配一个空格(不要与b混淆)

字符b
意义:匹配一个单词的分界线,比如一个空格(不要与混淆)
例如:/bnw/匹配"noonday"中的’no’,/wyb/匹配"possibly yesterday."中的’ly’。

字符B
意义:匹配一个单词的非分界线
例如:/wBn/匹配"noonday"中的’on’,/yBw/匹配"possibly yesterday."中的’ye’。

字符cX
意义:这里的X是一个控制字符。匹配一个字符串的控制字符。
例如:/cM/匹配一个字符串中的control-M。

字符d
意义:匹配一个数字,等价于[0-9]。
例如:/d/或/[0-9]/匹配"B2 is the suite number."中的’2’。

字符D
意义:匹配任何的非数字,等价于[^0-9]。
例如:/D/或/[^0-9]/匹配"B2 is the suite number."中的’B’。

字符f
意义:匹配一个表单符

字符n
意义:匹配一个换行符

字符r
意义:匹配一个回车符

字符s
意义:匹配一个单个white空格符,包括空格,tab,form feed,换行符,等价于[ fnrtv]。
例如:/sw*/匹配"foo bar."中的’ bar’。

字符S
意义:匹配除white空格符以外的一个单个的字符,等价于[^ fnrtv]。
例如:/S/w*匹配"foo bar."中的’foo’。

字符t
意义:匹配一个制表符

字符v
意义:匹配一个顶头制表符

字符w
意义:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。
例如:/w/匹配"apple,"中的’a’,".28,"中的’5’和"3D."中的’3’。

字符W
意义:匹配除数字、字母外及下划线外的其它字符,等价于[^A-Za-z0-9_]。
例如:/W/或者/[^$A-Za-z0-9_]/匹配"50%."中的’%’。

字符n
意义:这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。

例如:/apple(,)sorange1/匹配"apple, orange, cherry, peach."中的’apple, orange’,下面有一个更加完整的例子。
注意:如果左圆括号中的数字比n指定的数字还小,则n取下一行的八进制escape作为描述。

字符ooctal和xhex
意义:这里的ooctal是一个八进制的escape值,而xhex是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码
Jass 2003-12-18
  • 打赏
  • 举报
回复
自己测了一下,不能用/^ $/构造,这样会很复杂(整个表达式去匹配),
用这个:
regex = /[<>,:;\'\"\+=@\\\[\]\x3c\x3e\x22\x20]|[^\x00-\x7F]/;
这样的效果才是逐个字符匹配
Jass 2003-12-18
  • 打赏
  • 举报
回复
我不知道javascript的正则表达式的两个字符组进行AND操作用什么字符表示,我查了Js参考也没找到,只有|的操作,java里面是可以的,写成下面这样就可以了:

[\\x00-\\x7F&&[^<>,:;'\"\\+=@\\\\\\[\\]\\x3c\\x3e\\x22\\x20]]*
paulone 2003-12-18
  • 打赏
  • 举报
回复
超级看不懂,学习,学习!
zxdhaha 2003-12-18
  • 打赏
  • 举报
回复
学习学习,up
软猫克鲁 2003-12-18
  • 打赏
  • 举报
回复
能不能就用如下的逻辑实现啊?
if(regex.test(testStr)){
//合法字符串
}else{
//非法字符串
}
filippo1980 2003-12-18
  • 打赏
  • 举报
回复
看看,顺便学习一下
RobinHZ 2003-12-18
  • 打赏
  • 举报
回复
洗耳恭听……
软猫克鲁 2003-12-18
  • 打赏
  • 举报
回复
没有高手么?
zhonghua2003 2003-12-18
  • 打赏
  • 举报
回复
自己测了一下,不能用/^ $/构造,这样会很复杂(整个表达式去匹配),
用这个:
regex = /[<>,:;\'\"\+=@\\\[\]\x3c\x3e\x22\x20]|[^\x00-\x7F]/;
这样的效果才是逐个字符匹配
色老虫 2003-12-18
  • 打赏
  • 举报
回复
我小学文凭呀…………哭!!!非得上大学不可~~~~~~~~~~
软猫克鲁 2003-12-18
  • 打赏
  • 举报
回复
救命啊……:(
色老虫 2003-12-18
  • 打赏
  • 举报
回复
弓虽,我是文盲,看不懂…………谁能解释一下??
shining_ljr 2003-12-18
  • 打赏
  • 举报
回复
去学一下编译原理,就知道什么是正则表达式了,大学本科也就这点值钱,嘿嘿
Jass 2003-12-17
  • 打赏
  • 举报
回复
刚刚看了一下javascript的参考文档,好像javascript中没有&&运算符,
只有 | 运算府!
楼主想表达的是
^A & B ==== true
可以换一种思路:
A | ^B ==== false
写成js表达式则是:

var testStr = "abc[";
var regex = /^[<>,:;\'\"\+=@\\\[\]\x3c\x3e\x22\x20]|[^\x00-\x7F]$/;
if(!regex.test(testStr)){
//合法字符串
}else{
//非法字符串
}


Jass 2003-12-17
  • 打赏
  • 举报
回复
/^[\x00-\x7F&&^[/\[\]\;\:\=\,\+\*\?\@\x3c\x3e\x22\x20]]*$/
试试
加载更多回复(1)

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧