正则表达式修剪多余的字符

时间:2015-01-28 05:32:06

标签: regex

我使用正则表达式([A-Za-z])\\1+", "$1修剪任何给定字符串中的多余字符。

然而,这是问题所在。如果有一个双字母的单词如下:

success

变成:

suces

如何修复此正则表达式以允许2个字符,但修剪过去?

3 个答案:

答案 0 :(得分:1)

  

如何修复此正则表达式以允许2个字符,但修剪过去?

使用此正则表达式,

([A-Za-z])\\1{2,}

然后用$1替换匹配。 \1{2,}与捕获的角色匹配两次或更多次。

答案 1 :(得分:1)

您可以使用:

str = str.replaceAll( "(([A-Za-z])\\2)\\2+", "$1");

RegEx Demo

答案 2 :(得分:0)

以下正则表达式对我有用:

/^\s+|\s+$/g

说明:

  • ^\s+:=检查字符串的开头是否连续包含任意数量的空白字符
  • \s+$:=检查字符串的结尾是否连续有任意数量的空白字符
  • |:=“或”,检查是否存在^\s+\s+$这两个模式中的任何一个
  • g:=搜索多个匹配项(例如:某些字符串的开头和结尾都可能有空格)