如果它看起来像一个完整的停止期,我想分开一个完整的停止期。
我已解决的第一个问题是:
// space period if followed by Capital letter having spaces before or not.
original = original.replaceAll("\\.(\\s?[A-Z])", " . $1");
这将完美地完成以下情况:
" Hello World。这是对特警队的测试。这是另一个短语。美国和欧盟以及英国都没有评论它。 http://a.a.br
"
并做:" Hello World。这是特警队的测试。这是另一个短语。美国和欧盟以及英国都没有评论它。 http://a.a.br
"
现在,注意到它分离了案例" Hello Word。这..."和#34; ...特警队。这是"。另请注意,它没有损坏URL。
然而它没有修复" ...评论它。 http://a.a.br
"应该是" ...评论它。 http://a.a.br
"但世界呢。之后是小写的http。"
现在,如果单词next有空格和小写,我希望它将其他句子分开,或者甚至是一个数字,前提是句点之前有一个小写字母。
所以案件:
1)"它。 HTTP"应该是"它。 HTTP" 2)"它。 12"应该是"它。 12"
现在必须在不损坏网址或电子邮件地址的情况下进行此操作。运行第一条规则" \。(\ s?[A-Z])"不会损坏电子邮件地址和网址。
此外,规则编号为1" \。(\ s?[A-Z])"是,如果在大写字母[A-Z]之前有换行符,而不是可选空格和大写字母,那该怎么办?
所以它是"这句话。\ n那句话。"它应该导致"这句话。 \ n那句话。"
我该怎么做?
谢谢!
答案 0 :(得分:1)
您可以按如下方式更新正则表达式以实现此目的:
original = original.replaceAll("\\.(\\s[A-Za-z0-9])", " .$1")
' \ s'匹配空白字符,所以应该能够处理' \ n'。 请参阅http://www.regular-expressions.info/shorthand.html。
答案 1 :(得分:0)
re.sub(r"(\w{2,})\.",r"\1 . ",x,re.DOTALL)
它在python中并适用于所有情况。
答案 2 :(得分:0)
根据您的要求:
可以输入如下:
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