([@#]).*(?!\1)[@#] 怎么解读这个正则式?
([@#]).*我知道可以从这里分成两部分(?!\1这个位置的”\1“我也知道)[@#]这个表达式匹配的是@#或#@也就是一共两个字符第一个字符是@#中的一个第二个字符是...
([@#]).* 我知道可以从这里分成两部分(?!\1这个位置的”\1“我也知道)[@#]
这个表达式匹配的是
@#或#@
也就是一共两个字符
第一个字符是@#中的一个
第二个字符是@#中的另一个 保证两个不相同的字符各自出现一次
我的问题是
一:其中[@#].*是什么意思,没有”或|“运算符 而.*则表示是星号之前的零到多个任意字符啊这一句是如何表示出其中一个的?
二:(?!\1)[@#] 这个又是如何表示出另一个字符的?特别是其中感叹号的作用
取消第一个问题
就是第二个问题
主要是?!组合以后的作用 展开
这个表达式匹配的是
@#或#@
也就是一共两个字符
第一个字符是@#中的一个
第二个字符是@#中的另一个 保证两个不相同的字符各自出现一次
我的问题是
一:其中[@#].*是什么意思,没有”或|“运算符 而.*则表示是星号之前的零到多个任意字符啊这一句是如何表示出其中一个的?
二:(?!\1)[@#] 这个又是如何表示出另一个字符的?特别是其中感叹号的作用
取消第一个问题
就是第二个问题
主要是?!组合以后的作用 展开
展开全部
\数字的意思是匹配分组里的内容。\1代表第一个分组,你可能要问什么事分组,简单的说一个()就是一个分组,也就是([@#])匹配到的内容,也就是说如果你第一个口号里匹配到了@符号,那么\1就是@(注意不能是#了)。如果你第一个([@#])匹配到了#就是\1代表#符号。
(?! 里面的字符串)的意思是不匹配“里面的字符串”才能成功。
也就是说你一个(?!\1) 不能出现一号分组的内容才成功。
例子:
#多个任意字符@ 可以匹配成功
@多个任意字符# 可以匹配成功
@多个任意字符@# 不可以匹配成功(@和@重复了)
(?! 里面的字符串)的意思是不匹配“里面的字符串”才能成功。
也就是说你一个(?!\1) 不能出现一号分组的内容才成功。
例子:
#多个任意字符@ 可以匹配成功
@多个任意字符# 可以匹配成功
@多个任意字符@# 不可以匹配成功(@和@重复了)
追问
我知道\1的作用
感谢你的回答
对于后面的我都得到了有效地帮助
对于后面的?!还有一个问题
[^\1]也是不匹配啊
我却不能用在此处
是因为我的写法有问题还是根本就不可以?
如果能回答这个问题我更加感谢你
并且可以送分给你
追答
[]里好像不能那么写 [ ^@] [^#]可以。
不用加什么分啊你多客气,多给点啊!\(^o^)/
参考资料: 正则表达式指南 - AstralWind - 博客园.mht
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询