正则expression式仅在行首匹配字符
我正在尝试正则expression式。 我有一个有几个字段的大型机文件。 我有一个平面文件分析器,根据每行的前三个字母来区分几种types的logging。 如何写前三个字母为“CTR”的正则expression式?
提前致谢
string的开始或string的开始?
string的开始和结束
/^CTR.*$/   / =分隔符 
  ^ =string的开始 
  CTR =文字CTR 
  $ =string的结尾 
  .* =除换行符以外的任何字符的零个或多个 
行的开始和结束
 /^CTR.*$/m 
  / =分隔符 
  ^ =行的开始 
  CTR =文字CTR 
  $ =行尾 
  .* =除换行符以外的任何字符的零个或多个 
  m =启用多行模式,这设置正则expression式把每一行作为一个string,所以^和$将匹配行的开始和结束 
 在多线模式下,您仍然可以将string的开始和结束与\A\Z永久性锚点匹配 
 /\ACTR.*\Z/m 
  \A =表示string的开始 
  CTR =文字CTR 
  .* =除换行符以外的任何字符的零个或多个 
  \Z =string的结尾 
  m =启用多线模式 
因此,匹配行首的另一种方法是这样的:
 /(\A|\r|\n|\r\n)CTR.*/ 
要么
 /(^|\r|\n|\r\n)CTR.*/ 
  \r =回车/旧的Mac OS换行符 
  \n =换行符/ Unix / Mac OS X换行符 
  \r\n = windows换行符 
 注意,如果你打算在一些支持转义的程序string中使用反斜杠\ ,比如php的双引号""那么你需要先转义它们 
 所以要运行\r\nCTR.*你可以用它作为"\\r\\nCTR.*" 
 ^CTR 
要么
 ^CTR.* 
编辑:
 更清楚的是^CTR会匹配行的开头和那些字符…如果你想要做的就是匹配一行本身(并且已经有行使用),那么这就是你真正需要的(但如果这是如此,你可能会更好使用预制substr()types的function…不知道你正在使用什么语言…)。 但是,如果你想匹配和抓线,你将需要像.*或.*$或其他任何东西,取决于你正在使用什么语言/正则expression式函数… 
 尝试^CTR.\* ,这实际上意味着开始行,点击率,任何东西 。 
 这将区分大小写 ,并且设置非区分大小写将取决于您的编程语言,或者使用^[Cc][Tt][Rr].\*如果跨环境不区分大小写。 
 ^CTR.*$ 
 匹配以CTR开头的行。 
不知道如何将它应用到您的服务器上的文件,但通常,匹配string开头的正则expression式是:
 ^CTR 
  ^表示string/行的开始 
(?i)^ [\ r \ n] *点击率 (?i) - 不区分大小写 - 如果区分大小写,则删除。 [\ r \ n] - 忽略空格和新行 * - 0或更多次相同 点击率 - 你的string开头。
这个问题有些模棱两可。
什么是你的inputstring? 它是整个文件吗? 还是一次一行? 一些答案是假设后者。 我想回答前者。
你想从正则expression式中返回什么? 事实上,你想要一个真实/错误的是否是一场比赛? 或者你想提取以CTR开始的整个行? 我会回答你只是想要一个真/假的比赛。
要做到这一点,我们只需要确定点击率是出现在文件的开头,还是紧跟在新的一行之后。
 /(?:^|\n)CTR/