我正在尝试学习正则表达式。我有一个主机文件,其中有几个字段。我有一个扁平文件解析器,根据每行的前三个字母区分几种记录类型。如何编写一个正则表达式,使得前三个字母是“CTR”。
我正在尝试学习正则表达式。我有一个主机文件,其中有几个字段。我有一个扁平文件解析器,根据每行的前三个字母区分几种记录类型。如何编写一个正则表达式,使得前三个字母是“CTR”。
是指行起始位置还是字符串起始位置?
/^CTR.*$/
/
= 分隔符
^
= 字符串的开头
CTR
= 文字 CTR
$
= 字符串的结尾
.*
= 零个或多个除换行符之外的任意字符
/^CTR.*$/m
/
= 分隔符
^
= 行的开头
CTR
= 字面意思为CTR
$
= 行的结尾
.*
= 零个或多个除换行符之外的任意字符
m
= 启用多行模式,这将使正则表达式将每行视为字符串,因此^
和$
将匹配行的开头和结尾
在多行模式下,您仍然可以使用\A\Z
永久锚点匹配字符串的开始和结尾
/\ACTR.*\Z/m
\A
= 表示字符串的开头
CTR
= 字面意义上的CTR
.*
= 零个或多个除换行符以外的任何字符
\Z
= 表示字符串的结尾
m
= 启用多行模式
因此,另一种匹配开头的方法如下:
/(\A|\r|\n|\r\n)CTR.*/
或者/(^|\r|\n|\r\n)CTR.*/
\r
= 回车符 / 旧版 Mac OS 换行符
\n
= 换行符 / Unix/Mac OS X 换行符
\r\n
= Windows 换行符
请注意,如果您要在某些支持转义的程序字符串中使用反斜杠\
,例如 php 双引号""
,那么您需要先对它们进行转义。
因此,为了运行 \r\nCTR.*
,您应该将其用作 "\\r\\nCTR.*"
。
^CTR
或者^CTR.*
编辑:
为了更加清晰: ^CTR
将匹配行的开头和这些字符。如果你只想匹配一整行(并且已经有了需要使用的行),那么你其实只需要这个。但如果是这种情况,你可能最好使用一个预设的 substr()
类型函数。我不知道你使用的是什么语言。但如果你要匹配并获取整行,你将需要使用类似于 .*
或 .*$
的东西,具体取决于你使用的语言/正则表达式函数。
^CTR.\*
,它的字面意思是“行首,CTR,任何内容”。^[Cc][Tt][Rr].\*
。^CTR.*$
匹配以CTR
开头的行。
不确定如何将其应用于您服务器上的文件,但通常匹配字符串开头的正则表达式为:
^CTR
< p > ^
表示字符串/行的开头
(注:该句为IT技术相关内容)/(?:^|\n)CTR/
(?i)^[ \r\n]*CTR
(?i) - 不区分大小写 -- 如果需要区分大小写,则将其删除。 [ \r\n] - 忽略空格和换行符。 * - 重复0次或多次。 CTR - 以此字符串开始。
m
= 启用多行模式,这将使正则表达式将每一行视为一个字符串,因此^
和$
将匹配行的开头和结尾" -- 值得强调。我一开始就认为只要输入^
&$
就可以了。但事实并非如此!祝100快乐。 - ruffin