我是java中使用正则表达式的新手,现在正在使我的正则表达式工作时出现问题。
我想在字符串中保留至少3个字符,如果只有2个字符,我想删除它。
这是我的字符串:
It might be more sensible for real users if I also included a lower limit on the number of letters.
我想要的输出:
might more sensible for real users also includedlower limit the number letters.
所以,我做了一些谷歌搜索,但仍然没有工作。 所以基本上这里是完整的代码(1-5是我试过的正则表达式):
String input = "It might be more sensible for real users if I also included a lower limit on the number of letters.";
//1. /^[a-zA-Z]{3,}$/
//2. /^[a-zA-Z]{3,30}$/
//3. \\b[a-zA-Z]{4,30}\\b
//4. ^\\W*(?:\\w+\\b\\W*){3,30}$
//5. [+]?(?:[a-zA-Z]\\s*){3,30}
String output = input.replaceAll("/^[a-zA-Z]{3,}$/", "");
System.out.println(output);
答案 0 :(得分:2)
你可以试试这个:
length
答案 1 :(得分:0)
您可以使用\\w{1,3}
获取任意1-2个字符。然后,您需要确保它们在删除之前不与其他单词字符相邻,因此您需要检查非单词字符(\\W
)以及该行的开头或结尾(^
和{{1像这样:
$
请注意额外的空间可以清除我们要删除的2个空格。