写一个正则,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) 是不是括号都是不是配对正确了的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式匹配括号中的内容。

java之endwith()方法以及正则表达式匹配中文

编写一java程序,判断表达式中圆括号是不是匹配

JAVA正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢?

Java String正则匹配大小写问题

怎么用正则表达式匹配中括号内的字符