zoukankan      html  css  js  c++  java
  • JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\)

    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的正则表达式的区别

    总体上,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正则面前显得只是一个简约的基础库。

    编程实现是细节活,粗枝大叶的结果就是问题多多。一定要弄清楚

    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的正则表达式的区别

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

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

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

    $str='age13gegep3iorji65k65k';
    $pattern='/(d)(d)/';
    $str=preg_replace($pattern,'$2', $str);

    java正则实例:

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

    String line = "This order was placed for QT3000! OK?";
    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 }
  • 相关阅读:
    看过设计模式第一章的心得
    支付宝支付过程填坑
    C# 合并只要有交集的所有集合
    C#中的反射 Reflection
    动态更改配置文件
    六种弹窗
    Respone弹窗
    Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件
    使用ECharts报表统计公司考勤加班,大家加班多吗?
    排污许可管理条例-中华人民共和国国务院令第736号
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9074705.html
Copyright © 2011-2022 走看看