2015-09-05 121 views
1

我需要搜索段落中的大多數連接詞並用空白替換。sas perl正則表達式(搜索精確匹配多個值並替換爲一個)

例如:

You are a boy ....... 
Is he a scientist ...... 

我需要刪除喜歡你的話,我,我們,他們,他,她,它等...

我想出這個正則表達式,但它會如果單詞並排,則不起作用。

content = left(prxchange('s/ you | are | he//',-1,cat(' ',content,' '))); 

我的結果不會刪除單詞「are」。我在前面和後面放置空白,以確保它完全匹配。即時搜索「他」時不會選擇「hello」。

有無論如何搜索完全匹配並用空白替換嗎?如何包含字邊界?我試圖放置\ b但它似乎不工作。

回答

0

你是對的。這需要\b(單詞邊界)。

prxid = prxparse('s/\b(?:you|i|we|they|he|she|it|etc)\b//'); 
call prxchange(prxid,-1,content); 

使用非捕獲組(?: ...)指定字邊界之前和之後的任何交替的。

+0

謝謝!它適用於我..我還有一個問題,如果我想匹配的詞是「不」。它只會刪除「don」...「't」將會保留... – Yumi

+1

prxid = prxparse(「s/\ b(?<!')(?:(you | you%'re))\ b (?!'')/!/「);和prxid = prxparse(「s/\ b(?<!')(?:(你|你))\ b(?!'')/!/」);但它似乎不工作..., – Yumi

+0

我錯過了%STR ..謝謝你的幫助! – Yumi