使用正则表达式如何从字符串中提取前3个字符(不考虑字符)?同样使用单独的表达式,我想从字符串中提取最后3个字符,我该如何做呢?我在网上找不到任何有效的例子,所以如果你知道的话,谢谢。谢谢,史蒂文
von4xj4u1#
任何编程语言都应该有比使用正则表达式更好的解决方案(即某种substring函数或字符串的slice函数)。然而,这当然可以用正则表达式来完成(如果你想用文本编辑器之类的工具来使用它)。你可以使用anchors来指示字符串的开始或结束。
substring
slice
^.{0,3} .{0,3}$
这最多匹配一个字符串的3个字符(尽可能多)。我添加了“0到3”语义而不是“正好3”,这样这也可以在较短的字符串上工作。请注意,.通常匹配除换行符之外的任何字符。通常有一个s或singleline选项可以更改此行为,但另一个没有选项设置的选项是这样的(它实际上匹配any3个字符):
.
s
singleline
^[\s\S]{0,3} [\s\S]{0,3}$
但是正如我所说的,如果你想在一些提供其他字符串操作函数的代码中使用这种方法,我强烈建议你不要使用这种方法。
a9wyjsp72#
如何从字符串中只挑选前两个单词字符,例如c!ract@r应返回cr(排除“!”作为其特殊字符)
2条答案
按热度按时间von4xj4u1#
任何编程语言都应该有比使用正则表达式更好的解决方案(即某种
substring
函数或字符串的slice
函数)。然而,这当然可以用正则表达式来完成(如果你想用文本编辑器之类的工具来使用它)。你可以使用anchors来指示字符串的开始或结束。这最多匹配一个字符串的3个字符(尽可能多)。我添加了“0到3”语义而不是“正好3”,这样这也可以在较短的字符串上工作。
请注意,
.
通常匹配除换行符之外的任何字符。通常有一个s
或singleline
选项可以更改此行为,但另一个没有选项设置的选项是这样的(它实际上匹配any3个字符):但是正如我所说的,如果你想在一些提供其他字符串操作函数的代码中使用这种方法,我强烈建议你不要使用这种方法。
a9wyjsp72#
如何从字符串中只挑选前两个单词字符,例如c!ract@r应返回cr(排除“!”作为其特殊字符)