sas perl正则表达式(搜索完全匹配多个值并替换为一个)

时间:2015-09-05 12:23:51

标签: regex sas pcre

我需要搜索段落中的大多数连接词并替换为空白。

例如:

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

我需要删除像你这样的词,我,我们,他们,他,她,等等......

我想出了这个正则表达式,但是如果这个词是并排的话它将不起作用。

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

我的结果不会删除“是”这个词。我在前面和后面留空,以确保它是完全匹配。对于即时,搜索“他”时不会选择“你好”。

是否有搜索完全匹配并替换为空白?如何包含单词边界?我试图放置\ b但它似乎无法正常工作。

1 个答案:

答案 0 :(得分:0)

你是对的。这需要\b(单词边界)。

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

使用非捕获组(?: ... )指定单词边界在任何替换之前和之后。