今天女票让我帮她写一个js中的正则,来提取电话号码,对于正则规则来说,js与python是基本没有区别的,重点的区别是在一些函数与方法中。

python中的正则提取:

import re
str = 'asfasdfgasffas青蛙无法·啊沙发上,。,从 dw2efdrqw15894648760asfasf' \
'asf,./asf029-81464970jhklasdnf,wsdn15888888888'
patt = '1[3,5,8,7]\d{9}|0\d{2}-\d{8}'
data = re.findall(patt, str)
print(data)

js中的正则提取:

<script>
$('#id1').click(function () {
var test = 'asfasdfhakj啊是法律dsh15894648760asfadf欺负我,。, 。qwe jfwj029-81464970asfafaflame';
var patt= /1[3,5,8,7]\d{9}|0\d{2}-\d{8}/g;
alert(test.match(patt))
})
</script>

两者主要区别:

  

 (1)在python中,正则表达式其本质上是一个字符串,所以用引号括起来,但是在JS中,正则必须以斜杠符号 / 来包围,如 

/1[3,5,8,7]\d{9}|0\d{2}-\d{8}/  并且不能加引号。
 (2)在匹配模式中,js仅仅支持 g 全局搜索, i忽略大小写, m 多行匹配这三种, 但是python支持更多。
 (3)js中匹配并替换是replace函数,在python中是sub() js中的replace无论使用正则表达式还是字符串本身,默认情况下仅仅替换第一个匹配项。
 (4)JS以 / 来标识正则表达式,以引号标识字符串。
 (5) JS与Python都有match函数,但是意义大不相同。Python中match方法是指从字符串开始进行匹配,但是在js中match方法是类似于匹配全部,
与python中的findall()非常接近。但是还是有区别滴: 如果在js的正则中后一个/后加上g,那就与python中的findall一毛一样。会返回所有匹配到的值,
但是如果没有g,就只会返回第一个匹配到的值
 (6) JS 中的search()与Python中字符串的find方法和正则表达式re模块中的search方法一样, 但是js会返回字符串的下标索引,而非字符串。

还有疏忽的地方,来日想起来再补充吧。这儿有个别的大佬写的,栗子啥的挺全的:

大佬链接:https://www.cnblogs.com/dyfblog/p/6077122.html

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

js中正则表达式与Python中正则表达式的区别的更多相关文章

  1. 正则表达式与Python中re模块的使用

    正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...

  2. 常用正则表达式与python中的re模块

    正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...

  3. 【归纳】正则表达式及Python中的正则库

    正则表达式 正则表达式30分钟入门教程 runoob正则式教程 正则表达式练习题集(附答案) 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行 例子:\bhi\b可以用来匹配hi这个单词,且 ...

  4. 正则表达式在python中的简单使用

    正则表达式独立与编程语言,基本上所有的编程语言都实现了正则表达式的相关操作.在Python中正则表达式的表现为re模块: import re 其操作有三个方法: my_string = "h ...

  5. 正则表达式与python中re模块

    一个网站,正则表达式入门的,很好 http://www.jb51.net/tools/zhengze.html 下面这个包含对python中re的介绍,也是很不错的http://www.w3cscho ...

  6. 正则表达式中的.*?和python中re.S参数的详解

    本章的内容主要是为讲解在正则表达式中常用的.*?和re.S! 在正则表达式中有贪婪匹配和最小匹配:如下为贪婪匹配(.*) import re match = re.search(r'PY.*', 'P ...

  7. 正则表达式和python中的re模块

    ---恢复内容开始--- 常用的正则匹配规则 元字符 量词 字符组 字符集 转义符 贪婪匹配 re模块使用正则表达式 实例引入(是否使用re模块和正则表达式的区别) # 不使用正则表达式 phone_ ...

  8. js中map和python中的map

    js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow( ...

  9. 正则表达式在python中的应用

    一.常用符号 . :匹配任意字符,换行符\n除外   * :匹配前一个字符0次或无限次    ? :匹配前一个字符0次货1次 .* :贪心算法 .*? :非贪心算法 () :括号内的数据作为结果返回 ...

随机推荐

  1. Nodejs mysql pool使用实例

    前段时间在写一个版本发布工具,用到express+mysql实现,当站点运行很长一段空白时间后,node进程会自动down掉,提示mysql连接错误,谷歌后发现是mysql自身的特性导致,因此后来改为 ...

  2. int,long,long long的数据范围

    unsigned   int   0-4294967295   int   2147483648-2147483647 unsigned long 0-4294967295long   2147483 ...

  3. websocket的加密和解密

    补充个小知识点:按位与运算 按位与运算是同位都为1才为1,有一个不为1就是0 websocket_hand import socket, base64, hashlib import websocke ...

  4. mui的ajax例子1

    mui.ajax()方法,get请求 前端页面: <!DOCTYPE html><html><head> <meta charset="utf-8& ...

  5. 零基础逆向工程30_Win32_04_资源文件_消息断点

    1 资源文件,创建对话框 详细步骤: 1.创建一个空的Win32应用程序 2.在VC6中新增资源 File -> New -> Resource Script 创建成功后会新增2个文件:x ...

  6. 【Android开发笔记】Android Splash Screen 启动界面

    public class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanc ...

  7. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:9.观察者模式

    欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 在一个程序的迭代过程中,复杂度渐渐上升,可能会出现一些跨模块的调用的需求,若是直接得到引用来进行使用,会导致模 ...

  8. VMware Workstation Pro 11、12 密钥

    11:1F04Z-6D111-7Z029-AV0Q4-3AEH8 12:5A02H-AU243-TZJ49-GTC7K-3C61N

  9. Java生成不重复的随机数

    public class test { public static int[] Randoms(int number) { Random rand = new Random(); //创建一个新随机数 ...

  10. oc语言特性

    It’s a superset of the C programming language and provides object-oriented capabilities and a dynami ...