如何删除除两位数之间的点或逗号以外的所有非字母数字

0 java regex string expression alpha

我已经搜索了很长时间,但是不幸的是,正则表达式真的不适合我...

我只想用空格替换2位数(或加号)之间的点或逗号以外的所有非字母数字。

示例: 欢迎使用由Media Temple自豪地托管的gskinner.com的RegExr v2.1!-98.7 3.141 .6180 9,000

成为

欢迎使用Media Temple自豪地主持的gskinner com的RegExr v2.1 98.7 3.141 6180 9,000

我知道这可以删除所有非字母数字:[^ a-zA-Z0-9],但我只想为2个数字之间的点或逗号添加例外(我已经在http://regexr.com/上进行了测试)

谢谢你的帮助 !;)

Boh*_*ian 6

尝试这个:

str = str.replaceAll("[^a-zA-Z0-9 .,]|(?<!\\d)[.,]|[.,](?!\\d)", "");
Run Code Online (Sandbox Code Playgroud)

正则表达式匹配

  • 您绝对不想要的一切,或者
  • 带数字的点/逗号,或
  • 点号/逗号后没有数字