当前位置: 首页 > 知识库问答 >
问题:

使用se删除非字母数字字符

樊宏义
2023-03-14

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

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

我尝试过:

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

echo“10.41.89.50”| sed s/[\w.-]//g和echo“10.41.89.50”| sed s/[\w^-]//g返回10418950

我尝试使用sed跳过/删除此处找到的答案,但没有删除任何内容。


共有3个答案

童浩言
2023-03-14

要删除除字母数字和“-”之外的所有字符,请使用以下代码:

echo "a b-1_2" | sed "s/[^[:alnum:]-]//g"
季华茂
2023-03-14

您可能希望改用类:

echo "Â10.41.89.50 " | sed "s/[[:alpha:].-]//g"

应该工作。如果没有,您可能需要更改本地设置。

另一方面,如果您只想保留数字、连字符和周期d::

echo "Â10.41.89.50 " | sed "s/[^[:digit:].-]//g"

如果字符串位于变量中,则可以使用纯bash和参数扩展:

$ dirty="Â10.41.89.50 "
$ clean=${dirty//[^[:digit:].-]/}
$ echo "$clean"
10.41.89.50

$ dirty="Â10.41.89.50 "
$ clean=${dirty//[[:alpha:]]/}
$ echo "$clean"
10.41.89.50

您还可以查看1_CR的答案。

鞠子轩
2023-03-14

tr的-c(补码)标志可以是一个选项

echo "Â10.41.89.50-._ " | tr -cd '[:alnum:]._-'
 类似资料:
  • 问题内容: 我需要从字符串中删除所有不在集合中或不是空格的字符。 有人有功能吗? 问题答案: 听起来您几乎已经知道自己想做的事情,基本上将其定义为正则表达式。

  • 问题内容: 我想将以下字符串转换为提供的输出。 我还没有发现,将处理特殊字符,如任何解决方案,,,等。 基本上,我只是想摆脱所有不是字母数字的东西。这是我尝试过的… 尝试多个步骤 结果 任何帮助,将不胜感激。 工作解决方案: 问题答案: 删除非字母数字字符 以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符: 请注意,这等效于-它包括下划线字符。要删除下划线,请使用例如: 输入格式错误

  • 问题内容: 我正在编写python MapReduce字数统计程序。问题是数据中散布着许多非字母字符,我发现这篇文章从Python的字符串中剥离了除了字母数字字符之外的所有内容,这显示了使用正则表达式的一个很好的解决方案,但是我不确定如何实现它 恐怕我不确定该如何使用该库甚至正则表达式。我不确定如何将正则表达式模式正确地应用于传入的字符串(书的一行)以检索没有任何非字母数字字符的新行。 有什么建议

  • 但是,当我尝试使用的输入运行此代码时,我得到了的意外结果 我做错了什么?

  • 如何在Java中从字符串中删除所有非字母数字阿拉伯字符?

  • 问题内容: 我得到的任务是从文本文件或字符串中删除所有非数字字符,包括空格,然后在旧字符旁边打印新结果,例如: 之前: 后: 由于我是初学者,所以我不知道从哪里开始。请帮忙 问题答案: 最简单的方法是使用正则表达式