正则匹配中文.PHP不兼容的问题】的更多相关文章

不使用: ^[\u4e00-\u9fa5_a-zA-Z0-9_]+$ 有可能兼容有问题 if(!preg_match_all("/^[\\x7f-\\xff_a-zA-Z0-9]+$/",$group_name)){ return error!}…
今天爬虫(新浪微博 个人信息页面)的时候遇到了转义和正则匹配中文出乱码的问题. 先给出要匹配的部分网页源代码如下: <span class=\"pt_title S_txt2\">昵称:<\/span><span class=\"pt_detail\">他们叫我远凸哥哥<\/span><\/li>\r\n\t\t 想要匹配得到的结果是这个人的昵称,即“他们叫我远凸哥哥” 1.转义 比较简单,需要转义的是反斜…
# -*- coding:utf-8 -*- import re '''python 3.5版本 正则匹配中文,固定形式:\u4E00-\u9FA5 ''' words = 'study in 山海大学' regex_str = ".*?([\u4E00-\u9FA5]+大学)" match_obj = re.match(regex_str, words) if match_obj: print(match_obj.group(1)) 结果:山海大学…
$str = 'eg5455正则匹配中文123三国杀'; $patten='/[\x{4e00}-\x{9fa5}]+/u'; $a = preg_match($patten, $str, $mn); var_dump($mn[0]);// 打印 '正则匹配中文' ps:  utf8编码,正则写在变量里面,否则要转义…
业务场景1: 密码输入框需要验证输入中文,中文符号,空格等情况,以便于给出错误提示 业务场景2: 输入框只允许输入数字的情况 业务场景3: 输入框允许输入均为数字或以https:// 开头的url的情况 备注: 网上查阅的大部分JavaScript中文/中文符号/空格等正则匹配,在中文加一个英文或者数字都能校验通过,无法满足实际的校验需求,使用下面的字符串替换方法,并比对str替换前后的length,即可完成准确的实际校验需求 var length = str.length // str为想要验…
我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹配公式是: /[\u4e00-\x9fa5]/ 然后我在网上找的,下面的解决方案 解决后的匹配方案是: /^[\x{4e00}-\x{9fa5}]+$/u 下面是具体文章 在做表单验证时对用户姓名的验证规则有以下要求 要求:输入的内容需要满足的条件是:   1.允许输入字符:数字(0-9).字母(a…
在javascript中,要判断字符串是中文是很简单的.比如:var str = "php编程";if (/^[\u4e00-\u9fa5]+$/.test(str)) {alert("该字符串全部是中文");} else {alert("该字符串不全部是中文");} 想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路:<?php$str = "php编程";if (preg_match("/^[\u…
由于 需求原因,需要匹配 提取中文,大量google下,并没有我需要的.花了一个小时大概测试,此utf8中文通过,特留文.    参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn.net/u/20070404/15/b011aa83-f9b7-43b3-bbff-bfe4f653df03.html 首先,确保所有编码都为 unicode      …
可以看到,目前正则匹配字母没问题,c出现1次,2次,3次匹配的结果都是正常的 接下来我们看看匹配中文的效果 可以看到,当匹配连续出现歪时,结果就开始不正常了 然后我去看了下mysql的中文文档中关于正则表达式的部分(https://www.mysqlzh.com/doc/233.html) 上面是文档中的一部分,看着跟我之前的写法有点不一样,它在花括号里写了逗号,我在思考难道我的语法写错了?必须这样写才行吗?然后我按上面的语法又去试了试 可以看到,即使我按文档上的写法,依然存在问题 正确的做法,…
preg_match('/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u', $str) 如上,是匹配字母或者汉字的,一定要在后面加模式修饰符 u , 不然就出错! u (PCRE_UTF8) 此修正符打开一个与 perl 不兼容的附加功能. 模式字符串被认为是utf-8的. 这个修饰符 从 unix 版php 4.1.0 或更高,win32版 php 4.2.3 开始可用. php 4.3.5 开始检查模式的 utf-8 合法性. utf8格式的匹配模式字符串必须要使用  u 修…
在php 中: //GB2312汉字字母数字下划线正则表达式 GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str); //UTF-8汉字字母数字下划线正则表达式 UTF-8: preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str); //匹配手机号码 //据悉,目前移动号段主要为134-13…
<?php $str = '你是我的+****xiaopingguo _ 23947237 _+冠军终归这里'; preg_match_all('/[\x{4e00}-\x{9fa5}A-Za-z0-9]+/u', $str, $re); print_r($re); //输出结果是: //Array ( [0] => Array ( [0] => 你是我的 [1] => xiaoweiba [2] => 23947237 [3] => 冠军终归这里 ) ) 逐个解释:…
alert(/[\u4e00-\u9fa5]{4}/.test("司徒正美"))//true alert(/[\u4e00-\u9fa5]{4}/.test("司正美"))// false [\u4e00-\u9fa5] 匹配单个汉字 原链接:http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html…
preg_match('/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u', $str)…
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3     移动n1-n2行(包括n1,n2)到n3行之下: :n1,n2 co n3    复制n1-n2行(包括n1,n2)到n3行之下: :n1,n2 d        删除n1-n2行(包括n1,n2)行: vi替换使用规则: :g/s1/s/s2/s3/g 第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s…
python 处理时间 import time import re now = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) timeobj = re.match(r'(.*)-(.*)-(.*) (.*):(.*):(.*)', now) if timeobj is not None: timestamp = time.mktime(time.strptime(now, "%Y-%m-%d %H:%M:%S")…
Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. #include<stdio.h> #include<stdlib.h> #include <string.h> #include <errno.h> #include <locale.h> #include <dlfcn.h> /* * export LD_LIBRARY…
用正则时间越久,人就越懒,就越知道正则的强大.正则,不只是在代码里用到,在字符查找是也会用到,学会适当使用正则,将会使你的工作事办功倍!但是,中文却是一个砍,不容易过. 于是在用notepad++,也用正则去查找,挺爽的,正则规则,不能加//类似的分隔符,区分大小写,请勾选界面勾选框.其他基本和正则的符号一致! 网友原话:我刚在在notepad++中试过了,貌似它的正则表达式引擎是单字节的.用[\u4e00-\u9fa5]与[^\x00-\xff]都不能正常的匹配中文.实在是郁闷,在java.p…
1.php正则匹配UTF-8格式的中文汉字 和 [,][,][.]等符号 if (preg_match_all("/([\x{4e00}-\x{9fa5}]+((,)?)+((,)?)+((.)?))/u", (string)$jingdian_arr['view_desc'], $match)) { //var_dump($match[0]); $count = count($match[0]); unset($jingdian_arr['view_desc']); for($i=1…
今天接到一个需求,用户昵称系统需要将昵称输入的字符类型限定为 中文,英文,数字, -,_ 显然这个应该用正则来实现,那么最终的规则是怎么样的呢?示例代码如下: <?php $str = '我爱北京天安门-1234567_abacABCDDD'; if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_-]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式 { echo "输入非法"; }else{ echo…
mysql中的正则操作 匹配手机号,匹配中文,替换 正则匹配hy_user表内tel字段的电话号码: SELECT * FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}" SELECT tel FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}" SELECT tel FROM hy_user WHERE tel REGEXP "^[1][35678][0-9…
验证邮箱 let self = this let regEmail= /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ if (!regEmail.test(self.ruleForm.tourMail)) { self.$message({ type: 'error', message: '请填写正确的邮箱', center: true }) }   匹配…
匹配中文时,正则表达式规则和目标字串的编码格式必须相同 print sys.getdefaultencoding() text =u"#who#helloworld#a中文x#" print isinstance(text,unicode) print text UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 18: ordinal not in range(128) print text报错 解…
参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn.net/u/20070404/15/b011aa83-f9b7-43b3-bbff-bfe4f653df03.html 首先,确保所有编码都为 unicode        比如 str.decode('utf8') #从utf8文本中               u"啊l"  #在控制台…
任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering Regular Expression>中文名叫<精通正则表达式>.挺不错的一本书. OK,先确定我们要解决的问题--从一段Html文本中找出特定id的标签的innerHTML. 这里面最大的难点就是,Html标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签呢? 我们可以这样想,先匹配最前…
例如在 MySQL 的 bin-log 文件中选取特定的数据库语句来恢复数据时,只要选出某个库的 INSERT INTO 操作(去掉了多余信息,只列出 SQL 语句) INSERT INTO `crm_member` (`id`,`name`) values (,'甄士隐') INSERT INTO `app_member` (`id`,`name`) values (,'dee') INSERT INTO `crm_member` (`id`,`name`) values (,'emperor…
[\x{4e00}-\x{9fa5}] ============================================= 参考资料 1.在javascript下正确的\x4e00-\x9fa5并不完全适合php中文正则表达式:2.匹配中文全角字符的正则:   ^[\x80-\xff]*^/  :3.GB2312.汉字.字母.数字.下划线正则表达式:[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+:4.UTF-8汉字.字母.数…
regexp_extract 语法:    regexp_extract(string subject,  string pattern,  int index) 返回值: string 说明:  将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符. 第一参数:   要处理的字段 第二参数:    需要匹配的正则表达式 第三个参数: 0是显示与之匹配的整个字符串 1 是显示第一个括号里面的 2 是显示第二个括号里面的字段... 注意,在有些情况下要使用转义字符…
UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的.比如: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else{ alert("该字符串不全部是中文"); } php中,是用\x表示十六进制数据的.于是,变换成如下的代码: $str = "php编程"; if (preg_match(&qu…
正则表达式匹配中文先要了解中文的编码 代码如下 复制代码 [u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符 [u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符 匹配中文字符的正则表达式: [u4e00-u9fa5]匹配双字节字符(包括汉字在内):[^x00-xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 代码如下 复制代码 String.prototype.len=function(){return this.replace([^…