在我的 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/