linux字符集对正则表达式有什么影响
发布网友
发布时间:2022-04-19 14:19
我来回答
共1个回答
热心网友
时间:2023-09-26 02:53
有时候为了让Linux终端能够显示中文,会将终端的编码字符集设置为GB2312简体中文编码(就是将LANG环境变量设置成zh_CN.gb2312),这个时候对正则表达式的结果是有影响的。
比如,zh_CN.gb2312这个语系编码的数字及大小写英文的顺序是:0 1 2 3 4 5 6 ...... a A b B c C d D e E ...... z Z,当我们使用表示大写字符的[A-Z]时,在zh_CN.gb2312语系编码下,就不是表示大写字符了,而是表示“A b B c C d D e E ...... z Z”这一堆字符。
所以,在使用兼容于POSIX标准的正则表达式的时候,一般是使用“LANG=C”这个语系编码。另外,尽量使用特殊符号来表示英文和数字,比如用[:upper:]来代替[A-Z]。
关于Linux中正则表达式的小问题
echo abcd123 | sed 's/\([a-z]*\).*/\U\1/'\(..\)保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers 上例中\1就是指前面的\([a-z]*\)\U 是转换成大写 这样就明白了,\U\1指 [a-z]*全部转成大写。invalid reference \1 on `s' command's RHS “s”命...
Linux中的`=~`什么意思?
总之,在Linux Shell脚本中,`=~` 是一个强大的工具,用于执行基于正则表达式的字符串匹配。它允许你在处理文本和进行模式匹配时执行复杂的操作。
Linux正则表达式
^ : 匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有特殊含义 : 匹配前面的正则表达式,在字符串或者行结尾处。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义 [] : ...
linux awk 正则表达式.正则运算符详细介绍
[String] 指定正则表达式与方括号内 String 变量指定的任何字符匹配。命令行: awk '/sm[a-h]/' testfile 将具有 sm 后跟以字母顺序从 a 到 h 排列的任何字符的所有记录打印至标准输出。此示例的输出是: smawley, andy ...
Linux sed命令与正则表达式
1. "${name_for_deal[@]}" 去掉双引号。因为 for A in B 结构中,B是一个以空格分隔的数据集合。而加了双引号就被当做一个整体字符串了。2. sed的单引号会屏蔽$的取值功能,shell变量${name}要得到解析必须拿到单引号外面来。即,在${name}前闭合单引号,之后再重新开始。sed -i '/^[ ...
表达式使用rm命令操作Linux中的正则表达式rmlinux正则
通过这条命令,用户可以轻松地使用更丰富的正则表达式功能来操作rm命令,更加方便快捷地实现其目的。总之,rm命令支持对正则表达式的使用,可以让用户更加简单高效的实现操作,而且当添加 extglob 选项时,rm命令还支持更加丰富的正则表达式功能。因此,在操作Linux中的正则表达式时,rm命令可以帮助用户大幅减少...
Linux如何使用正则表达式命令?文本文件操作命令
Linux对文本操作命令及正则表达式:cat cat 是 concatenate 的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于 dos 中的 type。more 当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏 察看 文件内容。less less 在 ...
Linux正则表达式分组技巧大揭秘linux正则分组
一般情况下,Linux正则表达式分组技巧使用括号“( )”来匹配正则表达式中的指定字符集,以对特定字符集定义指定顺序。换句话说,程序员可以通过使用括号来指定不同的顺序,从而定义要求匹配的字符集顺序。例如,假设程序员要实现“字符串中只有连续的三个数字,且只有一个小数点”这一需求,此时可以对其正则...
Linux基本操作10---正则表达式与文件格式化处理
简单的说正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找,删除,替换某特定字符串的处理程序 2 grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的,也就是说假如一个文件内有10行,那么其中两行是...
linux正则表达式 ;s/^[ \t]*//是什么意思?
s/ro.swversion=// 是将ro.swversion删掉 s/^[ \t]* 是将这一行起始的空白字符删掉 s/[ \t].*//' 是将空白及以后的内容删掉 比如:字符串 ' hello ro.swversion ok'做上面的处理后,结果就是hello