posix是什么字符集(Linux正则表达式)

:暂无数据 2026-09-08 08:40:01 :0

posix是什么字符集(Linux正则表达式)

本篇文章给大家谈谈posix是什么字符集,以及Linux正则表达式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

Linux正则表达式

一.linux文本查找命令

在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令:

1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。

2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。

3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行匹配多个字符串的版本。

如下简单的介绍grep命令:

语法格式:

grep

用途:

匹配一个或多个模式的文本行。

options:

-E : 使用扩展正则表达式进行匹配, grep -E 或取代 egrep 命令。

-F : 使用固定字符串进行匹配, grep -F 或取代传统的fgrep命令。

-e : 通常第一个非选项的参数认为是要匹配的模式,也可以同时提供多个模式,只要将其放入单引号,并用换行字符分隔他们。

模式以减号开头时,为防止混淆其为选项,-e选项说明其后的参数为模式,即使他以减号开头。

-f : 从pat-file文件读取模明李枣式作为匹配。

-i : 模式匹配时忽略大小写差异。

-l : 列出匹配模式的文件名称,而不是打印匹配的行。

-q : 静默的,如果匹配成功,不将匹配的行输出到标准输出;否则即是不成功。

-s : 不显示错误信息,通常与-q并用。

-v : 显示不匹配模式的行。

说明:可以同时查找多个文件中的内容,当指定多个文件时,每个显示出的文件行前会有文件名加一个冒号标识其来自哪个文件。

可激拆以使用多个-e 或 -f 选项,建立要查找的模式列表。
二.正则表达式简要介绍

1.正则表达式的组成

(1).一般字符:没有特殊意义的字符

(2).特殊字符(meta字符):元字符,有在正则表达式中有特殊意义

2.如下讲下正则表达式中的常见meta字符

(1).POSIX BRE与ERE中都有的meta字符:

\   :  通常用于打开或关闭后续字符的特殊含义,如\(...\)与\{...\}

.   :   匹配任何单个字符(除NUL)

*  :   匹配其前的任何数目或没有的单个字符,例: . 表示任一字符, 则 .* 匹配任一字符的任意长度

^  :   匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有扰尺特殊含义

$  :   匹配前面的正则表达式,在字符串或者行结尾处。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义

  :   匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字符,

(2).POSIX BRE中才有的字符:

\{n,m\} : 区间表达式,匹配在它前面的单个字符重现的次数区别。\{n\}指重现n次;\{n,m\}指重现n至m次;

\( \) : 保留空间,可以将最多9个独立的子模式存储在单个模式中。如\(ab\).*\1 : 指匹配ab组合的两次重现,中间可存在任意数目的字符。

\n : 重复在\(与\)方括号内第n个子模式至此点的模式。

(3).POSIX ERE中才有的字符:

{n,m} : 与BRE的\{n,m\}功能相同

+ : 匹配前面正则表达式的一个或多个扩展

? : 匹配前面正则表达式的零个或一个扩展

| : 匹配|符号前或后的正则表达式

( ) : 匹配方括号括起来的正则表达式群

(4). 方括号()表达式

4.1.字符集 

标识字符集,有如下几种:

: 标点符号字符

: 空格字符

: 大写字母字符

: 16进制数字

 4.2.排序符号

指将多个字符视为一个符号,如即将ch视为一个符号

4.3.等价字符

认为多个字符相等,如在法文的locale里,可匹配于多种与e相似的字符,此处不再列出。

说明:这三种构造除其自身的方括号之外,还必须使用额外的方括号括起来。

例 : : 匹配任一英文字母或感叹号。

: 匹配ch排序元素,而不匹配单独的字母c或h.

 3.简单正规表达式匹配案例

china  : 匹配此行中任意位置有china字符的行

^china : 匹配此以china开关的行

china$ : 匹配以china结尾的行

^china$ : 匹配仅有china五个字符的行

hina : 匹配含有China或china的行

Ch.na : 匹配包含Ch两字母并且其后紧跟一个任意字符之后又有na两个字符的行

Ch.*na : 匹配一行中含Ch字符,并且其后跟0个或者多个字符,再继续跟na两字符
二.实例

如下通过常用实例来学习BRE和ERE匹配,源文件url.txt内容如下:

www.baidu.com

***隐藏网址***

***隐藏网址***

***隐藏网址***

baidu.com

baidu

1.url匹配

***隐藏网址***

BRE匹配:

***隐藏网址***

ERE匹配:

***隐藏网址***

匹配结果如下:

***隐藏网址***

***隐藏网址***

2.Email匹配

示例文件内容为:

hfutwyy@qq.com

aaaa@

aaa@.com

aaa@gmail.com

@@baidu.com

匹配以字母数字或者下划线开头的多个字符,其后有一个@之后有多个字母数字或者下划线,其中有一个.号

grep ’^*\..*’ email.txt

 匹配结果:

hfutwyy@qq.com

aaa@.com

aaa@gmail.com

转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证

centos7 字符集是大写的c是怎么办

C--对应英文 ASCII 环境
C是系统默认的locale,码镇"POSIX"是"C"的别名。所以当我们新安装完一个旅握系统时,默认的locale就是C或拆模庆POSIX

ANSIC文件操作和POSIX文件操作对文件的标识分别是什么

ANSI C:标准C API(对应fopen)
POSIX:方便在Linux下运行的C API(对应open)

POSIX是什么标准为什么Windows也要支持他

POSIX代表 “可移植操作系统接口” Portable Operation System Interface 。主要是UNIX系统早期发展得太快,以SYS V为首的建制派和BSD为首的学院派各自搞了很多新玩意儿,相互之间竞争和不兼容之处越来越多,各个商业厂家也首鼠两端,无所适从。于是就有好事者出来一统江湖,把各个山头叫来坐下来谈,统一一下各家的乱七八糟,提出一个各方都能接受和支持的标准API,基本就是糅合一下SYSV和BSD。只要按照这个API标准写程序,理论上就可以在各个操作系统和硬件平台上编译运行。尾巴上的IX两个缩写就是为了表达跟UNIX的血缘关系。这名字还是Stallman大胡子起的。Linux作为一个从头开始研制的新操作系统,逐渐发展起来以后为了尽可能获得大量应用软件支持,也明智地选择了用POSIX作为API设计的标准。美国联邦信息处理标准规定联邦政府机构采购的产品必须符合POSIX标准,Windows NT为此做了个样子糊弄了一下,实际上早期版本根本不能用。

什么是posix标准为什么要有posix标准

它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。posix标准是用来完成同一功能,不同内核提供的系统调用的。

POSIX是Unix的标准。1974年,贝尔实验室正式对外发布Unix。因为涉及到反垄断等各种原因,加上早期的Unix不够完善,于是贝尔实验室以慷慨的条件向学校提供源代码,所以Unix在大专院校里获得了很多支持并得以持续发展。

于是出现了好些独立开发的与Unix基本兼容但又不完全兼容的OS,通称Unix-likeOS。包括:美国加州大学伯克利分校的Unix4xBSD(BerkeleySoftwareDistribution)。贝尔实验室发布的自己的版本,称为SystemVUnix。

其他厂商的版本,比如SunMicrosystems的Solaris系统。则是从这些原始的BSD和SystemV版本中衍生而来。

POSIX 字符集

最近在学正则表达式,接触到POSIX 字符集,这个传统的字符区域的优点体现在其在处理快速地指定字符集合的问题方面易于理解并且有效。但是这里我要告诉大家关于它的一个小知识。首先,我们看看通配符怎样被用来完成路径名展开操作。我们知道在某种程度上,字符区域被使用的方式几乎与在正则表达式中的用法一样,但是有一个问题:
jeremy@ubuntu:/tmp$ ls /usr/sbin/*
/usr/sbin/ModemManager /usr/sbin/NetworkManager

这个命令产生了期望的结果即只有以大写字母开头的文件名,但是:

jeremy@ubuntu:/tmp$ ls /usr/sbin/*
/usr/sbin/bccmd /usr/sbin/pm-hibernate
/usr/sbin/biosdecode /usr/sbin/pm-powersave
/usr/sbin/bluetoothd /usr/sbin/pm-suspend
/usr/sbin/chat /usr/sbin/pm-suspend-hybrid
/usr/sbin/chgpasswd /usr/sbin/popcon-largest-unused
/usr/sbin/chpasswd /usr/sbin/popularity-contest
/usr/sbin/chroot /usr/sbin/pppconfig
/usr/sbin/cpgr /usr/sbin/pppd
/usr/sbin/cppw /usr/sbin/pppdump
/usr/sbin/cracklib-check /usr/sbin/pppoeconf
/usr/sbin/cracklib-format /usr/sbin/pppoe-discovery
/usr/sbin/cracklib-packer /usr/sbin/pppstats

通过这个命令我们得到整个不同的结果,(输出了一大堆,只显示了一部分结果列表)。为什么会是那样?
这就要追溯到 Unix 刚刚开发的时候,它只知道 ASCII 字符,并且这个特性反映了事实。在 ASCII中,前 32 个字符(数字 0 - 31)都是控制码(如 tabs,backspaces,和回车)。随后的 32 个字符(32 - 63)包含可打印的字符,包括大多数的标点符号和数字 0 到 9。再随后的 32 个字符(64 - 95)包含大写字符和一些更多的标点符号。最后的31 个字符(96 - 127)包含小写字母和更多的标点符号。基于这种安排方式,系统使用这种排序规则的ASCII:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
这个不同于正常的字典顺序,其像这样:
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
随着 Unix 系统的知名度在美国之外的国家传播开来,就需要支持不在 U.S. 英语范围内的字符。于是就扩展了这个 ASCII 字符表,使用了整个 8 位,添加了字符(数字 128 - 255),这样就容纳了更多的语言。为了支持这种能力,POSIX 标准介绍了一种叫做 locale 的概念,其可以被调整,来为某个特殊的区域,选择所需的字符集,即系统的语言设置。通过这个设置,POSIX 相容的应用程序将会使用字典排列顺序而不是 ASCII 顺序。这就解释了上述命令的行为。当 字符区域按照字典顺序解释的时候,包含除了小写字母“a”之外的所有字母,因此得到这样的结果。

posix是什么的缩写

POSIX是可移植操作悔大亩系统接口(Portable Operating System Interface for UNIX)碧森的缩写。

是IEEE为了在各种UNIX操作系统上运行软件而定义的一系列API标准总称,正式称呼为IEEE 1003,国际标准名称为ISO/IEC 9945。

POSIX标准定义了操作系统应该为应用程序提供的接口仿盯标准,为获得源代码级别的软件可移植性。

POSIX不局限于UNIX,其它操作系统,如DEC OpenVMS支持POSIX标准;IEEE Std.1003.1-1990(1995年修订)或POSIX.1,POSIX.1提供源代码级别的C语言应用编程接口(API)给操作系统的服务程序,如读写文件。

POSIX.1被国际标准化组织(International Standards Organization,ISO)所接受,因此,被命名为ISO/IEC 9945-1:1990标准。

简单理解:

1、POSIX是一个针对操作系统(准确地说是针对类Unix操作系统)的标准化协议。

2、这个协议是对操作系统服务接口的标准化,从而保证了应用程序在源码层次的可移植性。

3、如今主流的Linux系统都做到了兼容POSIX标准。

Linux正则表达式的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Linux正则表达式、Linux正则表达式的信息别忘了在本站进行查找哦。

posix是什么字符集(Linux正则表达式)

本文编辑:admin

更多文章:


false是精确匹配吗(vlookup 函数中的精确匹配和大致匹配的区别)

false是精确匹配吗(vlookup 函数中的精确匹配和大致匹配的区别)

今天给各位分享vlookup 函数中的精确匹配和大致匹配的区别的知识,其中也会对vlookup 函数中的精确匹配和大致匹配的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月12日 00:50

sumproduct多条件排名不重复(Excel 求助,如何多条件统计不重复个数)

sumproduct多条件排名不重复(Excel 求助,如何多条件统计不重复个数)

大家好,sumproduct多条件排名不重复相信很多的网友都不是很明白,包括Excel 求助,如何多条件统计不重复个数也是一样,不过没有关系,接下来就来为大家分享关于sumproduct多条件排名不重复和Excel 求助,如何多条件统计不重

2026年10月11日 23:10

函数的类型有哪些?函数类型有哪些

函数的类型有哪些?函数类型有哪些

本篇文章给大家谈谈函数分类,以及函数的类型有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 20:20

源码交易平台哪个最靠谱(国内低代码平台哪家强)

源码交易平台哪个最靠谱(国内低代码平台哪家强)

本篇文章给大家谈谈源码交易平台哪个最靠谱,以及国内低代码平台哪家强对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 20:10

gcc编译器参数(深度linux的arm-linux-gnueabihf-gcc编译参数如何配)

gcc编译器参数(深度linux的arm-linux-gnueabihf-gcc编译参数如何配)

其实gcc编译器参数的问题并不复杂,但是又很多的朋友都不太了解深度linux的arm-linux-gnueabihf-gcc编译参数如何配,因此呢,今天小编就来为大家分享gcc编译器参数的一些知识,希望可以帮助到大家,下面我们一起来看看这个

2026年10月11日 19:30

用记事本写vbs代码(怎么把记事本改成vbs格式)

用记事本写vbs代码(怎么把记事本改成vbs格式)

各位老铁们好,相信很多人对用记事本写vbs代码都不是特别的了解,因此呢,今天就来为大家分享下关于用记事本写vbs代码以及怎么把记事本改成vbs格式的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月11日 17:23

asp是什么检查项目(医院血液检验项目RPR、TPPA、HIV-Ab各是什么意思)

asp是什么检查项目(医院血液检验项目RPR、TPPA、HIV-Ab各是什么意思)

“asp是什么检查项目”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看asp是什么检查项目(医院血液检验项目RPR、TPPA、HIV-Ab各是什么意思)!

2026年10月11日 10:20

汇编输出指令(用汇编语言循环指令在屏幕中间输出红底白字的“hello I am 720“)

汇编输出指令(用汇编语言循环指令在屏幕中间输出红底白字的“hello I am 720“)

各位老铁们好,相信很多人对汇编输出指令都不是特别的了解,因此呢,今天就来为大家分享下关于汇编输出指令以及用汇编语言循环指令在屏幕中间输出红底白字的“hello I am 720“的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看

2026年10月11日 07:20

本地搭建springboot项目(使用eclipse构建springboot项目)

本地搭建springboot项目(使用eclipse构建springboot项目)

各位老铁们,大家好,今天由我来为大家分享本地搭建springboot项目,以及使用eclipse构建springboot项目的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,

2026年10月11日 06:20

hump是什么意思?hump口语啥意思

hump是什么意思?hump口语啥意思

其实hump的问题并不复杂,但是又很多的朋友都不太了解hump是什么意思,因此呢,今天小编就来为大家分享hump的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 03:50

最近更新

thinkpadx250接口介绍(ThinkPad x250,VGA、DP接口)
2026-10-12 02:10:04 浏览:0
日程安排app(日程安排软件推荐)
2026-10-12 01:10:02 浏览:0
热门文章

标签列表