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

sas perl regular expression (search exact match for multiple value and replace with one )

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

例如:

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

我需要删除像你、我、我们、他们、他、她、它等词...

我想出了这个正则表达式,但如果单词并排出现,它就不起作用了。

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

我的结果不会删除 "are" 这个词。我在前面和后面都放了空白,以确保它是完全匹配的。暂时搜索"he".

时不会选择"hello"

有没有搜索完全匹配并替换为空白的方法?如何包含单词边界?我试图放置 \b 但它似乎不起作用。

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

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

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