首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex替换电子邮件

Regex替换电子邮件
EN

Stack Overflow用户
提问于 2014-09-17 07:51:25
回答 3查看 106关注 0票数 0

在我的SQLite数据库中,我有一个由电子邮件和教程名称(它是一个电子学习应用程序)组成的组合键,比如sonop@us.ac.zaTutorial 1或 3。当我稍后使用它们的时候,我很难把它们分开。我想分别获得教程(教程1)和电子邮件。看起来很直截了当但我还在挣扎?

以下是我迄今所做的尝试:

代码语言:javascript
复制
    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语句时,没有任何东西被替换或更改。有什么想法吗?还是有更简单的方法来做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-17 07:54:29

如果您想使用regex,那么像这样的东西应该可以工作:

代码语言:javascript
复制
    String pattern = "(.+)(Tutorial\\s\\d+)";
    Pattern r = Pattern.compile(pattern);
    String[] s = { "sonop@us.ac.zaTutorial 1",
            "randomperson@gmail.comTutorial 3" };
    for (String str : s) {
        Matcher m = r.matcher(str);
        if (m.find()) {
            System.out.println(m.group(1));
            System.out.println(m.group(2));
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2014-09-17 07:53:23

如果要使用regexp,则需要使用replaceAll (而不是replace)。但在这种情况下,我建议您简单地这样做:

代码语言:javascript
复制
int i = input.lastIndexOf("Tutorial");
String email = input.substring(0, i);
String tutorial = input.substring(i);

如果您真的想使用regexps,我会推荐如下

代码语言:javascript
复制
String key = "^(.*)(Tutorial \\d+)$";
String email = input.replaceAll(key, "$1");
String tutorial = input.replaceAll(key, "$2");
票数 1
EN

Stack Overflow用户

发布于 2014-09-17 08:00:08

我想你想要这样的东西,

代码语言:javascript
复制
System.out.println("sonop@us.ac.zaTutorial 1".replaceAll("^(.*?@[^A-Z]+)([A-Z]\\S+\\s*\\d+)$", "$1 $2"));
System.out.println("sonop@us.ac.zaTutorial 1".replaceAll("^(.*?@[^A-Z]+)([A-Z]\\S+\\s*\\d+)$", "$1"));
System.out.println("sonop@us.ac.zaTutorial 1".replaceAll("^(.*?@[^A-Z]+)([A-Z]\\S+\\s*\\d+)$", "$2"));

输出:

代码语言:javascript
复制
sonop@us.ac.za Tutorial 1
sonop@us.ac.za
Tutorial 1

演示

第一组包含电子邮件id,第二组包含字符串Tutorial和以下编号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25885095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档