JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\

一、总结

js正则:var patrn=/^[0-9]{1,20}$/;

php正则:$pattern='/(\d)(\d)/';

java正则:String pattern = "(\\D*)(\\d+)(.*)";

java没有分解符,java中的转义字符是\\

JS和PHP和JAVA的正则表达式的区别规则大致一样,注意细微处的差别

二、JS和PHP的正则表达式的区别

  1. 总体上,PHP的正则比标准javascript的要强大。
    PHP有两套正则库,一是posix兼容库(php5.3之前版本可用),而是perl兼容库(主力库)
    perl兼容库中支持而js正则不支持的:
    1、支持(?<!和(?<=回程断言
    2、许多预置字符类(:alnum:)
    3、支持组标识(?<>
    4、支持子组同名(?|
    5、支持独立子组(?>
    6、支持条件子组(?()
    7、支持递归子组(?R)
    8、支持本地编码,js只支持unicode
    9、修正器更多
    10、等等等等细节上的丰富。
    总之,js的正则库在php正则面前显得只是一个简约的基础库。
  2.  
  3. 编程实现是细节活,粗枝大叶的结果就是问题多多。一定要弄清楚

js正则实例:

校验是否全由数字组成:

  1. function isDigit(s)
  2. {
  3. var patrn=/^[0-9]{1,20}$/;
  4. if (!patrn.exec(s)) return false
  5. return true
  6. }

校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

  1. function isRegisterUserName(s)
  2. {
  3. var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
  4. if (!patrn.exec(s)) return false
  5. return true
  6. }

三、java的正则表达式和php的正则表达式的区别

  1. 正则表达式以perl语言的功能最全最强大。
    其他语言的正则表达式都以perl语言为基础。
    但是各个语言之间有区别。
    PHPJava语言之间的正则表达式有一定的区别。

把PHP的正则表达式的反斜杠“\”变成JAVA的双反斜杠“\\”才表示转义;还有JAVA没有PHP正则的分界符,如PHP是#^a-b#,而JAVA ^a-b是直接写表达式的,就这点区别

php正则实例:
将字符串中”age13gegep3iorji65k65k”;中出现的连续两个数字改为第二个数字,如字符串中13被改为3

  1. $str='age13gegep3iorji65k65k';
  2. $pattern='/(\d)(\d)/';
  3. $str=preg_replace($pattern,'$2', $str);

java正则实例:

从一个给定的字符串中找到数字串:

  1. String line = "This order was placed for QT3000! OK?";
  2. String pattern = "(\\D*)(\\d+)(.*)";

匹配验证-验证Email是否正确

  1. public static void main(String[] args) {
  2. // 要验证的字符串
  3. String str = "service@xsoftlab.net";
  4. // 邮箱验证规则
  5. String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}";
  6. // 编译正则表达式
  7. Pattern pattern = Pattern.compile(regEx);
  8. // 忽略大小写的写法
  9. // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
  10. Matcher matcher = pattern.matcher(str);
  11. // 字符串是否与正则表达式相匹配
  12. boolean rs = matcher.matches();
  13. System.out.println(rs);
  14. }

JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)的更多相关文章

  1. Java Script正则表达式语法学习

    今天在做页面交互验证时,在HTML里面第一反应居然用了Java 处理正则表达式的语法... ---------------------------------题记 学习来源 http://www.ru ...

  2. Java里正则表达式

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  3. Java的正则表达式

    package RegexTest; /** * Created by hu on 2016/3/29. */ /* * Java的正则表达式 在正则表达式中,用\d表示一位数字,如果在其它语言中使用 ...

  4. JS学习笔记(四) 正则表达式(RegExp对象)

    参考资料: 1. http://www.w3school.com.cn/js/js_obj_regexp.asp ☂ 知识点: ☞ RegExp是正则表达式的缩写. ☞ RegExp是一种模式,用于在 ...

  5. 表达式语言之java对正则表达式的处理

    正则表达式用于字符串匹配,字符串查找,字符串替换等.例如注册email格式的验证等.java中处理正则表达式相关的类主要有java.lang.String,java.util.regex.Patter ...

  6. Java与正则表达式

    Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...

  7. JAVA基础--正则表达式

    .  any character \d  A digit 0-9 \D  a non-digit [^0-9] \s  a whitespace character, 空白字符 \S  a non-w ...

  8. Java面向对象 正则表达式

     Java面向对象 正则表达式 知识概要:                (1)正则表达式的特点 (2)正则表达的匹配 (3)正则表达式的切割,替换,获取 (4)正则表达式的练习 正则表达式:符合 ...

  9. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...

随机推荐

  1. OpenGL核心技术之混合技术

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者.国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

  2. Android学习笔记进阶十二之裁截图片

    package xiaosi.cut; import java.io.File; import android.app.Activity; import android.content.Intent; ...

  3. 洛谷P3165 [CQOI2014]排序机械臂

    题目描述 为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂.它遵循一个简单的排序规则,第一次操作找到摄低的物品的位置P1,并把左起第一个至P1间的物品反序:第二次找到第二低的物品 ...

  4. win7旗舰版怎么降级到专业版

    一.操作准备及注意事项 1.UltraISO光盘制作工具9.5 2.备份C盘及桌面文件 二.win7旗舰版改成专业版的步骤 1.当前系统为Win7 SP1 64位旗舰版: 2.按Win+R打开运行,输 ...

  5. 洛谷P3403跳楼机(最短路构造/同余最短路)

    题目-> 解题思路: 最短路构造很神啊. 先用前两个值跑在第三个值模意义下的同余最短路(这步贪心可以证明,如果第三步长为z,那么如果n+z可以达到,n+2z同样可以达到) 最后计算与楼顶差多少个 ...

  6. Node.js笔记(九)Nodejs与shell

    众所周知.Nodejs是单进程异步执行的.但不光是单进程,Nodejs也提供了多进程方面的支持 其创始人应该还是比較重视这一块的,最有力的证据就是child_process是Nodejs核心模块之中的 ...

  7. setting.system-全局属性的设定

    SystemProperties跟Settings.System 1 使用 SystemProperties.get如果属性名称以“ro.”开头,那么这个属性被视为只读属性.一旦设置,属性值不能改变. ...

  8. 为什么选择Solr?

    在大型的SQL数据库上很难执行高速的查询有Solr是Apache 下的一个开源项目,使用Java基于Lucene开发的全文检索服务: 它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-ser ...

  9. Vue 拖拽组件 vuedraggable 和 awe-dnd

    vuedraggable:https://www.npmjs.com/package/vuedraggable awe-dnd:https://www.npmjs.com/package/awe-dn ...

  10. JS学习笔记 - fgm练习 - 数字自增 定时器 数字比大小Math.max

    <script> window.onload = function(){ var oP = document.getElementsByTagName('p')[0]; var i = 0 ...