通过正则表达式搜索和替换文本段落中的管道分隔字符

时间:2017-01-18 14:37:18

标签: java regex

我有一个场景,在大文本中,我想识别邮件签名并删除它。签名看起来像这样 -

name | some text | some text | some text E-mail:abc@xyz.com
该段落中的

。请注意,管道分隔符的数量可能是三个或更多,但最后它有电子邮件。 我需要一个Java代码使用正则表达式找到这些部分,然后删除它们。任何指针都会有所帮助。 提前谢谢。

只想添加,上面提到的签名模式可能会在大文本中出现一次或多次。管道分隔符内的文本(提及为 some text )也会随着名称和电子邮件字段而改变。

3 个答案:

答案 0 :(得分:1)

您将找到包含以下内容的电子邮件:

[^|]+$

匹配行结束前不是管道的所有内容。

答案 1 :(得分:1)

试试这个:

public static void main(String[] args) {
    String str = "name | some text | some text | some text E-mail:abc@xyz.com";
    String regex = ".*\\|.*\\s+";

    String email = str.replaceAll(regex, "");
    System.out.println(str);
}

答案 2 :(得分:0)

分割字符串后,将字符串的最后一个元素与电子邮件正则表达式进行比较,我相信你可以在网上找到它。

String[] s = yourString.split("\\|");