Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换一个句号\\。用空格\\。空间_Java_Regex - Fatal编程技术网

Java 替换一个句号\\。用空格\\。空间

Java 替换一个句号\\。用空格\\。空间,java,regex,Java,Regex,我想分开一个句号,如果它看起来像一个句号 我解决的第一个问题是: // space period if followed by Capital letter having spaces before or not. original = original.replaceAll("\\.(\\s?[A-Z])", " . $1"); 这将完美地解决以下情况: “Hello World。这是对SWAT团队的测试。这是另一个短语。美国和EU以及U. K都没有评论。”http://a.a.br” 《你

我想分开一个句号,如果它看起来像一个句号

我解决的第一个问题是:

// space period if followed by Capital letter having spaces before or not.
original = original.replaceAll("\\.(\\s?[A-Z])", " . $1");
这将完美地解决以下情况: “Hello World。这是对SWAT团队的测试。这是另一个短语。美国和EU以及U. K都没有评论。”http://a.a.br”

《你好世界》。这是对SWAT团队的测试。这是另一个短语。美国和EU以及U. K都没有评论过。http://a.a.br”

现在,注意到它将“你好,这个…”和“…特警队,这里是”分开。还请注意,它没有损坏URL

但是,它没有修复“…对其进行了注释。
http://a.a.br
“应该是哪一个”…注释了它。
http://a.a.br
“但世界需要它。后跟一个小写的http。“

现在,如果单词next有空格和小写字母,或者甚至是一个数字,我希望它像另一个一样分隔句点,前提是句点前面有一个小写字母

因此,情况如下:

1) ”“是的。http“应该是”它。http“ 2) ”“是的。12“应该是”它。12“

现在必须在不损坏URL或电子邮件地址的情况下执行此操作。运行第一条规则“\(\s?[A-Z])不会损坏电子邮件地址和URL

此外,第1条规则“\(\s?[A-Z])”的问题是,如果大写字母[A-Z]前没有空格和大写字母,而是有换行符,该怎么办

所以它是“这个句子。\n这个句子。”它应该是“这个句子”\“那句话。”

我怎么做


谢谢!

您可以按如下方式更新正则表达式以实现此目的:

original = original.replaceAll("\\.(\\s[A-Za-z0-9])", " .$1")
“\s”与空白字符匹配,因此应该能够处理“\n”。 看

测试使用


它是python语言,适用于所有情况。

根据您的要求:

  • 空格句点,如果后跟在前面有空格的大写字母 还是不
  • 如果后跟(空格和小写)或 (空格和数字)
  • 可按以下方式输入:

    String test = "Hello World. This is a Test of the SWAT Team.Here's another phrase. Both USA and EU as well as UK have not commented it. http://a.a.br";    
    test = test.replaceAll("\\.((?:\\s?[A-Z])|(?: (?:[a-z]|\\d)))", " . $1");
    System.out.println(test);
    
    输出为:

    Hello World .  This is a Test of the SWAT Team . Here's another phrase .  Both USA and EU as well as UK have not commented it .  http://a.a.br
    
    Hello World .  This is a Test of the SWAT Team . Here's another phrase .  Both USA and EU as well as UK have not commented it .  http://a.a.br