正则表达式从字符串中提取前三个字符

14 regex

使用正则表达式如何从字符串中提取前3个字符(无论字符如何)?另外使用单独的表达式我想从字符串中提取最后3个字符,我该怎么做?我在网上找不到任何有效的例子,谢谢你们.

谢谢史蒂文

Mar*_*der 28

任何编程语言都应该比使用正则表达式(即某种substring函数或slice字符串函数)有更好的解决方案.但是,这当然可以使用正则表达式(如果您想使用文本编辑器之类的工具).您可以使用锚点来指示字符串的开头或结尾.

^.{0,3}
.{0,3}$
Run Code Online (Sandbox Code Playgroud)

这最多匹配一个字符串的3个字符(尽可能多).我添加了"0到3"语义而不是"正好3",因此这也适用于较短的字符串.

请注意,.通常匹配换行符之外的任何字符.通常有一个ssingleline选项可以改变这种行为,但是没有选项设置的替代方法就是这样(它真正匹配任何 3个字符):

^[\s\S]{0,3}
[\s\S]{0,3}$
Run Code Online (Sandbox Code Playgroud)

但正如我所说,如果你想在一些提供其他字符串操作函数的代码中使用它,我强烈建议不要使用这种方法.另外,你应该深入研究一个教程.

  • 谢谢,我不能使用子字符串,我继承了一个允许正则表达式用于操作字段的程序,我想添加一个新的正则表达式,而不是乱码.谢谢 (2认同)