写一个正则,java的,需要匹配多个括号,如判断 11(22(234)(as(fds) 是不是括号都是不是配对正确了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个正则,java的,需要匹配多个括号,如判断 11(22(234)(as(fds) 是不是括号都是不是配对正确了相关的知识,希望对你有一定的参考价值。
正则是写不出来多层括号匹配的。这是正则的局限,你不要想了。你可以自己写个函数,可以用栈之类的去实现。 参考技术A 你可以自己写程序去判断啊,最简单的字符串截取就行了linux通配符
主要用于匹配文件和目录 如果是内容需要用更复杂得正则
* 匹配 0个或者多个任意字符
? 匹配一个字符
[-] 匹配括号中任意一个字符 -代表范围 如a-z A-Z 0-9
[^] 匹配不是括号中的一个字符 如 [^a-9] 匹配不是0-9的字符
[root@localhost ~]# ls anaconda-ks.cfg lnmp1.6.tar.gz lnmp-install.log post_install.log test [root@localhost ~]# cd test [root@localhost test]# touch dya dyb dyc dyabc dy1 dy2 dy3 dy55 dydd [root@localhost test]# ls dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [root@localhost test]# ls dy* dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [root@localhost test]# ls dy[a-z] dya dyb dyc [root@localhost test]# ls[^a-z] bash: ls[^a-z]: 未找到命令 [root@localhost test]# ls [^a-z] ls: 无法访问[^a-z]: 没有那个文件或目录 [root@localhost test]# ls dy[^a-z] dy1 dy2 dy3 [root@localhost test]# ls dy? dy1 dy2 dy3 dya dyb dyc [root@localhost test]# ls dy[a-z]* dya dyabc dyb dyc dydd [root@localhost test]# ls dy[a-z][a-z] dydd [root@localhost test]#
单引号所有特殊符号丧失含义
双引号 $符号会解析
反引号会执行命令 可以用$()替换
转义特殊符号
[root@localhost test]# echo $name test [root@localhost test]# echo ‘$name‘ $name [root@localhost test]# echo "$name" test [root@localhost test]# a=`ls` [root@localhost test]# echo $a dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [root@localhost test]#
[root@localhost test]# b=$(ls) [root@localhost test]# echo $b dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [root@localhost test]#
[root@localhost test]# echo $b dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [root@localhost test]# echo $b $b
以上是关于写一个正则,java的,需要匹配多个括号,如判断 11(22(234)(as(fds) 是不是括号都是不是配对正确了的主要内容,如果未能解决你的问题,请参考以下文章