正则表达式[\u4E00-\u9fa5]为啥能匹配到数字,字母和某些符号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式[\u4E00-\u9fa5]为啥能匹配到数字,字母和某些符号?相关的知识,希望对你有一定的参考价值。

正则表达式[\u4E00-\u9fa5]为什么能匹配到数字,字母和某些符号?我使用的sublime text3

参考技术A

[\\x4e00-\\x9fa5]


本回答被提问者采纳

正则表达式

正则表达式是你所定义的模式模板(pattern template), Linux可以利用它来过滤文本。

正则表达式类型

正则表达式是通过正则表达式引擎实现的。正则表达式引擎是一套底层软件,复杂解释正则表达式并使用这些模式进行文本匹配。

在Linux中,有两种流行的正则表达式引擎。
- POSIX基础正则表达式(basic regular expression, BRE)引擎
- POSIX扩展正则表达式(extended regular expression)引擎

定义BRE模式

特殊字符

.*[]^${}\\+?|()

锚字符

  1. 锁定在行首
    ^指定从数据流中文本行的行首开始模式。如果模式出现在行首之外的位置,正则表达式无法匹配。  如果将脱字符放在模式开头之外的其他位置,那么它就跟普通字符一样,不是特殊字符了
  2. 锁定在行尾
    $定义了行尾锚点。
  3. 组合锚点
    ^$指定了空行。

点号字符

点号用来匹配除换行符以外任意单个字符。

字符组(character class)

用来限定待匹配的具体字符。

排除型字符组

寻找组中没有的字符。只要在字符组的开头加个脱字符^.


即使是排除,字符组仍必须匹配一个字符。

区间

可以在单破折线符号在字符组中表示字符区间。只需要指定区间的第一个字符、单破折线以及区间的最后一个字符就行了。

特殊字符组

星号

字符后放置星号表示该字符必须在匹配模式的文本中出现0次或多次。

扩展正则表达式

问号

类似星号,不过前面的字符可以出现0次或1次,单仅限于此。

加号

表示前面的字符可以出现1次或多次,但必须出现一次。

花括号

为可重复的正则表达式指定一个上限。这通常称为间隔(interval)。可以用两种格式来指定区间。

- m: 正则表达式准确出现m次。

- m, n: 正则表达式至少出现m次,至多n次。

管道符号|

管道符号允许在检查数据时,用逻辑OR的方式指定正则表达式引擎要用的两个或多个模式。如果任何一个模式匹配了数据流文本,文本就通过测试。如果没有模式匹配,则数据流文本匹配失败。

表达式分组

可以用圆括号进行分组。当将正则表达式模式分组时,该组会被视为一个标准字符。可以像对普通字符一样给该组使用特殊字符。

实战-解析邮件地址

基本格式: username@hostname
username可用字母数字字符以及以下特殊字符
- 点号
- 单破折线
- 加号
- 下划线
hostname由一个或多个域名和一个服务器名组成。域名和服务器名只允许字母数字字符和点号、下划线
从左往右开始构建正则表达式
1. 用户名可以有多个有效字符。
^([a-zA-Z0-9_\\-\\.\\+]+)@
2. hostname
([a-zA-Z0-9_\\-\\.])
3. 顶级域名
\\.([a-zA-Z]{2,5})
组合起来就是
^([a-zA-Z0-9_\\-\\.\\+]+)@([a-zA-Z0-9_\\-\\.])\\.([a-zA-Z]{2,5})

以上是关于正则表达式[\u4E00-\u9fa5]为啥能匹配到数字,字母和某些符号?的主要内容,如果未能解决你的问题,请参考以下文章

([\u4E00-\u9FFF]+)([0-9]+)([^,, \u4E00-\u9FFF]*) java 正则的含义

正则表达式[\u4E00-\u9fa5]为啥能匹配到数字,字母和某些符号?

java正则中REGEX = "[\u4e00-\u9fa5]+"是啥意思

我在网上搜正则匹配中文出现了两种答案,[^\u3447-\uFA29]和[^\u4e00-\u9fa5]

要一个昵称的正则表达式 要求:只能由大小写英文字母、中文、数字组成 ^[\u4E00-\u9FA5A-Za-z0-9_]+$这个

关于姓名的正则表达怎么写?