2016-01-21 216 views
1

我有一些凌亂的文本回應,我試圖清理一點。我正在使用R,並希望匹配所有標點符合刪除的響應。正則表達式匹配所有標點符號的字符串,但沒有包含其他字符的標點符號的字符串

是否有一個正則表達式我可以用它來匹配這些:

[email protected]#$ 
. 
********** 

但不是這些:

Hello. 
!asdf 
**********1 

我以前試過

x[grepl("^[[:punct:]+]", x)] 

只在第一次匹配標點符號帶有另一個標點符號的字符

+0

'「(?s)^ \\ W + $」'.. –

+1

你有什麼試過的?請分享您到目前爲止所提供的代碼。 [應該「給我一個X的正則表達式」問題關閉嗎?](http://meta.stackoverflow.com/questions/285733/should-give-me-a-regex-that-does-x-questions-be ([:punct:] +] $「,或者:\t 'x [grepl(」^ [[:punct:] +] $「,close/285739#285739) –

+0

x [grepl(」^ [[:punct:] +]「,x)] –

回答

2

只需使用否定..

x[!grepl("\\w", x)] 

x[!grepl("[a-zA-Z]", x)] 

你的正則表達式x[grepl("^[[:punct:]+]", x)]應檢查是否爲標點存在於開始。

+0

@WiktorStribiżew他發佈了他的企圖.. –

+0

你至少可以解釋他爲什麼失敗。這就是爲什麼我們希望OP能夠提供他們的努力。 –

+0

謝謝是的否定得到我所需要的,如果我包括數字以及。 x [!grepl(「[a-zA-Z0-9]」,x)] –

1
^[^\\w\\n]+$ 

您可以使用此參見演示。

https://regex101.com/r/cZ0sD2/6

+1

@vks你仍然繼續避免在最後一個句子和下一個句子之間的空格。請更改您的模板。並解釋爲什麼「你可以使用這個」。 –

相關問題