正则表达式替换特殊字符,仅当不是单词的一部分时

时间:2013-02-07 00:20:40

标签: regex

我有以下字符串:

'United Breaks Guitars': Did It Really Cost The Airline $180 Million? http://ow.ly/htPVk

目前,我的正则表达式模式如下所示:[^A-Za-z-0-9- - / -$]

我不是正则表达式的专家,而且我一直在玩this tool来解决问题,但我被卡住了。

我想删除'":等字符。到目前为止,使用上述模式,突出显示的字符将从我的示例字符串中删除:< / p>

'美联航打破吉他' :这真的让航空公司损失了1.8亿美元? http : // ow . ly / htPVk

上述问题是我不想从网址中删除:.。但如果字符串以句号结束,我想将其删除。此外,应保留撇号'字符,以防它被用于省略字符或占有。

提前致谢。

1 个答案:

答案 0 :(得分:2)

取决于你如何定义“单词的一部分”,URL不是一个单词。

如果您将“部分单词”定义为非空格字符,则可以使用以下内容:

(?<!\S)[^\w $-]+|[^\w $-]+(?!\S)

(?!\S)是一种较短的说法(?=\s|$),同样适用于后视。