R 正则表达式。如何删除标点符号前一个句点后的空格

R 正则表达式。如何删除标点符号前一个句点后的空格,r,regex,R,Regex,我有一个关于正则表达式的问题。假设我有这根绳子 "She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: " 我想删除句点之后和字符“和删除字符”之前的所有空格 例如句子的这一部分 She was like an eating machine. ”Trump, a man who wants to be president

我有一个关于正则表达式的问题。假设我有这根绳子

"She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: "
我想删除句点之后和字符“和删除字符”之前的所有空格

例如句子的这一部分

She was like an eating machine. ”Trump, a man who wants to be president: 
应该成为

She was like an eating machine.Trump, a man who wants to be president: "
谢谢大家,正则表达式不容易学。谢谢你的帮助!再见 p、 我使用的是软件R,但我认为这是无关紧要的,因为正则表达式适用于所有编程语言

更新

我解决了我的问题,我想和大家分享,也许我可以帮助别人。我从kaggle下载了关于特朗普和希拉里推特的数据集

在导入Knime(大学项目)上的数据之前,我必须进行一些清理。
除此之外,我已经通过gsub解决了所有编码问题。我终于设法解决了这个问题,用编码UTF-8的R编写了一个csv文件。显然,我在Knime中以相同的编码读取该文件

如果需要匹配点和卷曲双引号之间的任意数量的空格(1或更多),可以使用

x <- "She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: "
gsub("\\.\\s+”", ".", x)
## => [1] "She gained about 55 pounds in...9 months. She was like an eating machine.Trump, a man who wants to be president: "

请参阅。

如果需要在点和卷曲双引号之间匹配任意数量的空格(1个或更多),可以使用

x <- "She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: "
gsub("\\.\\s+”", ".", x)
## => [1] "She gained about 55 pounds in...9 months. She was like an eating machine.Trump, a man who wants to be president: "

请参阅。

这可能有帮助:

var str = 'She was like an eating machine. "Trump, a man who wants to be president. "New value'; 
str.replace(/\.\s"/g,".");

这可能有助于:

var str = 'She was like an eating machine. "Trump, a man who wants to be president. "New value'; 
str.replace(/\.\s"/g,".");
是学习和测试正则表达式的好工具

我要补充的唯一一点是,Wiktor的答案与机器“Trump”不匹配。要匹配点后引号前的任意数量的空格,请使用
*
量词:

x <- "She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: "
gsub("\\.\\s*”", ".", x)
x是学习和测试正则表达式的好工具

我要补充的唯一一点是,Wiktor的答案与机器“Trump”不匹配。要匹配点后引号前的任意数量的空格,请使用
*
量词:

x <- "She gained about 55 pounds in...9 months. She was like an eating machine. ”Trump, a man who wants to be president: "
gsub("\\.\\s*”", ".", x)

这可能会有所帮助:var str='她就像一台吃东西的机器。“特朗普,一个想当总统的人:'str.replace(/\.\s)/g,'”@马可,我的回答对你有用吗?是的,对不起,也有用。我认为你的回答是最有益的这可能会有所帮助:var str=”她就像一台吃东西的机器。“特朗普,一个想当总统的人:'str.replace(/\.\s)/g,'”@马可,我的回答对你有用吗?是的,对不起,也有用。我认为你的回答是最有益的请注意,OP使用的是R,regexr.com仅支持JS正则表达式。例如,
[.][^]*?“
在regexr中可以很好地工作,但在R中不起作用。基本R使用TRE-regex-flavor(我不知道这方面有什么好的在线regex测试仪)或PCRE(与
perl=TRUE
一起使用时)-然后是一个更好的选择。很好的一点。在pcre模式下学习R兼容正则表达式可能是一个更好的选择。您的JS示例可以通过稍微修改并使用perl模式在R中工作:
[.][^]*?“
等于TRE
[.].*”
,或者在pcre中使用
(?[.].].*”
,或者:
gsub(“[.][.][^*.*?”,”,x,perl=TRUE)
。抱歉耽搁了,我分心了。不,
[^]
匹配任何字符,不是任何字符,而是星号。无论如何,这已经是多余的了。请注意,OP使用的是R,并且regexr.com只支持JS regex flavor。例如,
[.][^]*?“
在regexr中可以很好地工作,但在R中不起作用。基本R使用TRE-regex-flavor(我不知道这方面有什么好的在线regex测试仪)或PCRE(与
perl=TRUE
一起使用时)-然后是一个更好的选择。很好的一点。在pcre模式下学习R兼容正则表达式可能是一个更好的选择。您的JS示例可以通过稍微修改并使用perl模式在R中工作:
[.][^]*?“
等于TRE
[.].*”
,或者在pcre中使用
(?[.].].*”
,或者:
gsub(“[.][.][^*.*?”,”,x,perl=TRUE)
。抱歉耽搁了,我分心了。不,
[^]
匹配任何字符,不是任何字符,而是星号。不管怎么说,这已经太离谱了。