regex - 使用 sed 删除非字母数字字符

标签 regex bash sed replace

我正在尝试验证一些输入以删除一组字符。仅允许使用字母数字字符加号、句点、下划线和连字符。我在这里 http://gskinner.com/RegExr/ 测试了正则表达式 [^\w.-]它与我想要删除的内容相匹配,所以我不确定为什么 sed 返回相反的内容。我错过了什么?

我的最终目标是输入 "Â10.41.89.50 " 并获得 "10.41.89.50"。

我试过:

回显“Â10.41.89.50”| sed s/[^\w.-]//g 返回 ...

回显“Â10.41.89.50”| sed s/[\w.-]//gecho "Â10.41.89.50 "| sed s/[\w^.-]//g 返回 Â10418950

我尝试了在这里找到的答案 Skip/remove non-ascii character with sed但没有删除任何内容。

最佳答案

-c (补充)标志可能是一个选项

echo "Â10.41.89.50-._ " | tr -cd '[:alnum:]._-'

关于regex - 使用 sed 删除非字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20007288/

相关文章:

android - 无法导入 android.text.util.Regex?它在哪里?

php - 允许在正则表达式中使用括号和其他符号

bash - 从文本文件中识别并删除特定的隐藏字符

python - 如何使用 sed -n 但在 Python 中从文本文件中提取一系列行?

regex - 使用 sed linux 交换列

javascript - 运行正则表达式替换,同时忽略(但保留)某个字符

正则表达式只匹配两个特定的单词,例如是还是不是

regex - 如何使用sed替换字符串中间的匹配字符

linux - ;& 和 ;; 之间的区别在 bash 脚本中

linux - 从命名管道收集数据一段时间