替换所有正则表达式,不包括某些出现

时间:2017-07-03 12:03:50

标签: java regex

我正在尝试解析某些地址,我想删除除/ s / o之外的特殊字符。 S / O | d / o | D / O |没有O等。

所以,让我说我有一个字符串。像。的东西。

@Jane Doe.
W/O John Doe.
House #250, 
Campbell & Jack ^Street,
\Random * State,  Nowhere.

我将在

中使用什么样的正则表达式
String parsedString = addressString.replaceAll(regex,"");

以便parsedString具有输出。

Jane Doe
W/O John Doe
House 250
Campbell Jack Street
Random  State,  Nowhere

(我正在替换@,。#^& /(W / O除外))

1 个答案:

答案 0 :(得分:3)

您可以将此模式与不区分大小写的选项一起使用:

String pat = "[@#&^*/.,](?i)(?<![wds]/(?=o))";

细节:

[@#&^*/.,]  # characters you want to remove
(?i)       # switch the case insensitive flag
(?<!       # negative lookbehind: not preceded by
    [wds]/ # w or d or s and a slash
    (?=o)  # lookahead: followed by a o
)