`
kirenenko04
  • 浏览: 149554 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

php 正则表达式 匹配中日韩字符(GBK)

    博客分类:
  • php
 
阅读更多

首先是这些非英文字符的编码范围:

这里是几个主要非英文语系字符范围

2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$ 
理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异 
再到msn.co.jp复制了个'お', 也不得行..

然后把范围扩大到^[\u2E80-\u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文

而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$, 和论坛里常被人提起的^[\u4E00-\u9FA5]+$很接近

需要注意的是论坛里说的^[\u4E00-\u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[\u4E00-\u9FFF]+$也是一样的结果

 

然后上面的^[\u4E00-\u9FA5]+$形式的正则表达式php是不支持的。在stackoverflow上可以找到如下解决方案:

PCRE does not support the \uXXXX syntax. Use \x{XXXX} instead. See here.

Your \u2e80-\u9fff range is also equivalent to

\p{InCJK_Radicals_Supplement}\p{InKangxi_Radicals}\p{InIdeographic_Description_Characters}\p{InCJK_Symbols_and_Punctuation}\p{InHiragana}\p{InKatakana}\p{InBopomofo}\p{InHangul_Compatibility_Jamo}\p{InKanbun}\p{InBopomofo_Extended}\p{InKatakana_Phonetic_Extensions}\p{InEnclosed_CJK_Letters_and_Months}\p{InCJK_Compatibility}\p{InCJK_Unified_Ideographs_Extension_A}\p{InYijing_Hexagram_Symbols}\p{InCJK_Unified_Ideographs}

Don't forget to add the u modifier (/regex here/u) if you're dealing with UTF-8. If you're dealing with another multi-byte encoding, you must first convert it to UTF-8.

 

也就是说,php要这样写/[\x{2E80}-\x{9FFF}]+/u

分享到:
评论

相关推荐

    易语言正则表达式类匹配中文

    正则表达式是用于匹配字符串模式的一种强大工具,它使用特定的语法来描述字符串的特征,如单个字符、字符集、重复次数等。在易语言中,正则表达式类提供了多种方法来操作和分析字符串: 1. **创建**:创建正则...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    在探讨如何利用正则表达式来判断一个字符串除指定字符外不包含其他特殊字符之前,我们首先需要了解正则表达式的基本概念以及本场景中的具体需求。 ### 正则表达式简介 正则表达式是一种强大的文本处理工具,能够...

    java正则表达式匹配工具

    例如,`matches()`方法会检查整个输入字符串是否完全符合正则表达式,而`find()`则会在输入字符串中查找第一个匹配的部分。 在Java中,正则表达式的语法相当丰富,包括但不限于: 1. 字符集:`[]`用来定义一组字符...

    易语言正则表达式匹配中文

    综上所述,易语言正则表达式匹配中文涉及了字符串处理、字符编码、正则表达式语法等多个方面。通过学习和掌握这些知识点,开发者可以有效地处理中文文本,实现高效的数据搜索和处理功能。在实践中,不断探索和优化,...

    C#正则表达式大全, 判断字符串是否为正整数,中文,英文.....

    该方法使用了正则表达式 @"^\d+$" 来匹配字符串,如果字符串仅包含数字字符,则返回 true,否则返回 false。 知识点 3:判断输入的字符串是否全是英文(不区分大小写) 在上面的代码中,我们可以看到一个名为 ...

    JavaScript正则表达式匹配 div style标签

    正则表达式是处理字符串的强大工具,它允许我们对字符串进行匹配、搜索、替换等操作。在JavaScript中,正则表达式以斜杠“/”包围的形式出现,例如`/pattern/flags`。在处理HTML文档时,经常会遇到需要从HTML代码中...

    关于在LABVIEW中使用正则匹配公式.vi

    在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

    正则表达式匹配算法

    在`main.cpp`文件中,代码可能会包含一个函数,该函数接受一个正则表达式和一个待匹配的字符串,然后使用NFA进行匹配。这个函数会遍历输入字符串,每次迭代都会根据当前字符和NFA的状态进行状态转移。如果最终达到一...

    正则表达式匹配调试工具

    正则表达式(Regular Expression,简称regex)是用于在文本中搜索、匹配和操作字符串的强大工具。它由一系列字符和特殊符号组成,可以用来描述一个模式,进而对文本进行高效和精确的查找、替换或者分割等操作。在...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    本文将详细介绍如何在JavaScript中使用正则表达式进行字符串的模式匹配、提取以及替换。 #### 二、基本概念 正则表达式是一种由字符和特殊符号组成的语言,用于描述字符串的模式。在JavaScript中,正则表达式的创建...

    Java使用正则表达式提取XML节点内容的方法示例

    Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧。 一、正则表达式简介 正则表达式是指一...

    PB实现的正则表达式

    例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...

    wps表格excel正则工具,excel正则表达式替换/匹配/查找/搜索/提取数字

    而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...

    正则表达式匹配/可以自定义正则表达式

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配字符串模式,广泛应用于数据验证、搜索、替换等场景。在IT行业中,掌握正则表达式是提高工作效率的重要技能之一。 正则表达式的...

    基于FPGA的正则表达式匹配算法综述.pdf

    正则表达式是一种用于匹配字符模式的描述性语言,广泛应用于文本处理、数据校验和网络入侵检测等领域。基于FPGA的正则表达式匹配算法是利用FPGA的并行处理能力和高效的数据流处理特性,来加速正则表达式的匹配过程。...

    正则表达式匹配器

    正则表达式匹配器,自己开发的小工具,.net 4.0支持

    基于FPGA的正则表达式匹配引擎设计.pdf

    传统的正则表达式匹配通常按顺序逐字符处理输入数据,这限制了匹配速度。而并行处理技术能够同时对多个字符进行处理,显著提高了匹配速率。 设计过程中还提到了失效状态的概念。在正则表达式匹配的过程中,并非所有...

    正则表达式匹配

    - `n`: 匹配字符串数量。 - `f`: 需要匹配的字符串列表。 - `match`: 匹配结果矩阵。 ##### 函数实现 1. **`save` 函数**:此函数用于保存字符及其出现频率,用于统计特定字符在匹配过程中的出现次数。 - 参数: ...

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

Global site tag (gtag.js) - Google Analytics