java - 正则表达式替换电子邮件

标签 java regex replace

在我的 SQLite 数据库中,我有一个由电子邮件和教程名称(它是一个电子学习应用程序)组成的复合键,例如 sonop@us.ac.zaTutorial 1 randomperson@gmail.com教程 3。当我稍后使用它们时,我在拆分两者时遇到问题。我想分别获取教程 (教程 1) 和电子邮件 (sonop@us.ac.za)。看起来很简单,但我很困难?

这是我迄今为止尝试过的:

    String Key = cursor.getString(cursor.getColumnIndex("key"));
    String email = Key.replace("^(.*)(Tutorial)(\\s)(\\d+)$", "$1");
    String Tutorial = Key.replace("^(.*)(Tutorial)(\\s)(\\d+)$", "$2$3$4");

但是,当我稍后使用 print 语句时,没有任何内容被替换或更改。有任何想法吗?或者有更简单的方法吗?

最佳答案

如果您想使用正则表达式,则需要使用 replaceAll (而不是 replace)。但在这种情况下,我建议您只需这样做:

int i = input.lastIndexOf("Tutorial");
String email = input.substring(0, i);
String tutorial = input.substring(i);

如果你真的想使用正则表达式,我会推荐类似的东西

String key = "^(.*)(Tutorial \\d+)$";
String email = input.replaceAll(key, "$1");
String tutorial = input.replaceAll(key, "$2");

关于java - 正则表达式替换电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25885095/

相关文章:

java - 交换数组的最小和最大 int [Java]

php - 允许在字符串中使用破折号但不允许多个连续的破折号

java - 如何从android中的文本中提取所有URL

vba - 循环工作表时运行时错误 6 溢出

Java 性能/内存消耗 : Class vs. 数组

java - 无法将 csv 文件中的数据读回数组

java - Java中禁用JButton的问题

regex 和 sed 命令匹配相对路径文件名

Javascript参数化字符串: replace(RegExp,函数)意外分组/匹配

python - 如何将数据框中的周期值替换为空或其他值?