Java 在一些字符之间提取一组字符
我有一个字符串Java 在一些字符之间提取一组字符,java,regex,substring,Java,Regex,Substring,我有一个字符串email=John.Mcgee。r2d2@hitachi.com 如何使用正则表达式编写java代码来实现r2d2? 我使用了这个,但在eclipse上出现了一个错误 String email = John.Mcgee.r2d2@hitachi.com Pattern pattern = Pattern.compile(".(.*)\@"); Matcher matcher = patter.matcher for (Strimatcher.find()){ S
email=John.Mcgee。r2d2@hitachi.com
如何使用正则表达式编写java代码来实现r2d2?
我使用了这个,但在eclipse上出现了一个错误
String email = John.Mcgee.r2d2@hitachi.com
Pattern pattern = Pattern.compile(".(.*)\@");
Matcher matcher = patter.matcher
for (Strimatcher.find()){
System.out.println(matcher.group(1));
}
无需设置模式,只需使用此正则表达式
*\.([^\.]+)@.
,这意味着获取组([^\.]+)
(匹配一个或多个字符,点除外),该组介于点\.
和@
email = email.replaceAll(".*\\.([^\\.]+)@.*", "$1");
输出
r2d2
如果要使用模式,则必须使用此正则表达式
\\。([^\\.]+)@
:
String email = "John.Mcgee.r2d2@hitachi.com";
Pattern pattern = Pattern.compile("\\.([^\\.]+)@");
Matcher matcher = pattern.matcher(email);
if (matcher.find()) {
System.out.println(matcher.group(1));// Output : r2d2
}
您可以使用拆分的另一个解决方案:
String[] split = email.replaceAll("@.*", "").split("\\.");
email = split[split.length - 1];// Output : r2d2
注意:
- java中的字符串应该在双引号之间。r2d2@hitachi.com“
- 在Java中不需要转义
,但必须用双斜杠转义点。@
- for循环没有像(Strimatcher.find()){那样的语法,可能您的意思是
while
(?<=[.])([^.]*)(?=@)
(?不确定您发布的代码是否正确。但我会根据它的外观重新编写:
String email = John.Mcgee.r2d2@hitachi.com
Pattern pattern = Pattern.compile(".(.*)\@");
Matcher matcher = pattern.matcher(email);
int count = 0;
while(matcher.find()) {
count++;
System.out.println(matcher.group(count));
}
但我想你只是想要这样的东西:
String email = John.Mcgee.r2d2@hitachi.com
Pattern pattern = Pattern.compile(".(.*)\@");
Matcher matcher = pattern.matcher(email);
if(matcher.find()){
System.out.println(matcher.group(1));
}
Strimatcher.find
肯定不会编译,因为包含Matcher
的变量是Matcher
。谢谢。非常有用。我喜欢“全部替换”路线,但如果我不知道特殊字符是什么呢。它的特殊字符R2D2特殊字符。在这种情况下,我如何获得R2D2?谢谢lot@Diwas什么您的意思是,所有3种解决方案都返回r2d2
或点与@之间的任何字符,例如,如果您使用另一个字符串firstname。lastname@gmail.come
所有三种解决方案都返回lastname
我需要从字符串中获取R2D2,如下所示:字符串email=john.mcgee(特殊字符)R2D2(特殊字符)@hitachi.com如果我不知道特殊角色是什么,我如何获得r2d2?Thanks@Diwas好的,两个特殊字符之间的预期字符是什么?只有字母和数字?是的,只有字母和数字。