java、js、oracle 简单的正则表达式

java、js、oracle简单的正则表达式应用,不涉及扩展库,三者正则表达式基础含义基本一致。

\转译,用来转译特殊符号,java中使用 \\
.匹配除"\r\n"之外的任何单个字符
?匹配0次或者一次
*匹配0次或多次
+匹配一次或多次
{n}匹配n次
{n,}匹配不少于n次
{n,m}匹配不少于n次,不多于m次
^在[]中取非,排除[]中的内容 ,用于头部表示匹配开头
$匹配结尾
\d匹配一个数字,等价于[0-9]
\D匹配一个数字,等价于[^0-9]
\w匹配一个单字字符(字母、数字或者下划线)等价于[A-Za-z0-9_]
\W匹配一个非单字字符。等价于[^A-Za-z0-9_]
\s代表任意空白符(换行符,制表符,空格)
\S匹配任意非空字符串
()重复多个字符该
[]代表一个字符集合
{}表示量词的范围的

java、js、oracle 正则表达式含义有很多想通的地方,但调用方式,匹配方式却又很多不同。

**JAVA 中应用 **

正则表达式匹配规则: 匹配正数
String rex = “^\d+(\.\d+)?$” ;
//创建一个正则表达式
Pattern p = Pattern.compile(rex);
Matcher m = p.matcher(str);
调用
m.matches()
m.find()
//matches() 完全匹配正则表达式
//find() 对字符串进行匹配,匹配到的字符串可以在任何位置 —但如果字符串与正则表达式完全相同就会返回false,而matches()会返回true
例:

//正数 
String rex = "^\\d+(\\.\\d+)?"
//匹配格式 1a1a1a  数字+字母 重复匹配3次 \\1 匹配第一个第一个正则字符已()为准
//具体另起文章介绍
String rex2 = "([0-9][a-z])\\1{2}" ;
String str = "123.45";
Pattern p =  Pattern.compile(rex2);
Matcher m =  p.matcher(str);
System.out.println(m.matches());

**JS 中应用 **

正则表达式匹配规则: 匹配正数
var reg = /^\d+(.\d+)?$/ ;
var str =‘22222’ ;
reg.test(str) 返回:true
str.match(reg) 返回:22222

reg.test(str):匹配正则表达式,如果能匹配上,返回true,否则返回false
str.match(reg) :将能匹配上正则表达式规则的部分返回,如果没有返回null。通常可用来提取一个字符串中所有特定规则的字符。

**oracle 中应用 **

regexp_like(expression, regexp)
返回值为一个布尔值。如果第一个参数匹配第二个参数所代表的正则表达式,那么将返回真,否则将返回假。

举例: select * from people where regexp_like(name, ‘^J.*$’);

regexp_instr(expression, regexp, startindex, times)

参数startindex表示开始进行匹配比较的位置;参数times表示第几次匹配作为最终匹配结果。
举例: select regexp_instr(‘12.158’, ‘.’) position from dual;
regexp_instr(‘12.158’, ‘.’)用于获取第一个小数点的位置。

regexp_substr(expression, regexp, startindex, times)
截取字符串中匹配的正则表达式
参数startindex表示开始进行匹配比较的位置;参数times表示第几次匹配 ,将对应匹配的内容取出

regexp_replace(expression, regexp, replacement)
将expression中的按regexp匹配到的部分用replacement代替.
在参数replacement中,可以含有后向引用,以便将正则表达式中的字符组重新捕获。例如,某些国家和地区的日期格式可能为“MM/DD/YYYY”,那么可以利用regexp_replace()函数来转换日期格式。

select regexp_replace(‘09/29/2008’, ‘^([0-9]{2})/([0-9]{2})/([0-9]{4})$’, ‘\3-\1-\2’) replace from dual;

regexp_count(expression, regexp)
字符串中匹配正则规则的数量
例子:
select regexp_count(‘小红;小白;小兰’,’[^;]+’) from dual

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值