我想用x(下划线)替换特殊字符(regex\W),但我不想用下划线替换空白,也不想用单个下划线替换多个连续的特殊字符
示例字符串:the/Sun is red@
输出:The_Sunred_
字符串://黑月亮
输出:\u黑月亮
我试过echo'string'| sed's/\W//g'
,但并不准确
仅使用bash参数展开,与其他答案类似:
shopt -s extglob
for str in "The/Sun is red@" ".//hack Moon"; do
echo "${str//+([^[:alnum:][:blank:]])/_}"
# .........^^........................^ replace all
# ...........^^.....................^ one or more
# .............^^^^^^^^^^^^^^^^^^^^^ non-alnum, non-space character
done
The_Sun is red_
_hack Moon
使用tr
:
echo "The/Sun is red@" | tr -s -c [:alnum:][:blank:] _
[: alnum:][:空白:]
表示字母数字字符和空格,-c
表示相反的意思。
添加:-s
将重复的下划线压缩为一个。
se
方法:
s="The/Sun is red@ .//hack Moon"
sed -E 's/[^[:alnum:][:space:]]+/_/g' <<<"$s"
The_Sun is red_ _hack Moon
[^[:alnum:][:space:][]
-匹配除字母数字和空格外的任何字符序列问题内容: 我有一个字符串,我想用一个星号替换任何不是标准字符或数字的字符,例如(az或0-9)。例如,“ h ^&ell`。,| ow] {+ orld”被替换为“ h * ell * o * w * orld”。请注意,多个字符(例如“ ^&”)将替换为一个星号。我将如何去做呢? 问题答案: 正则表达式可以解救! 例:
问题内容: 我尝试使用此功能,但没有成功- 问题答案: 使用。 注意:删除了空格,因为通常不将其视为字母数字。
这应该只得到数字和返回,但不做它作为预期的!有什么建议吗?
嗨,我正在尝试从一个字符串中替换所有的非字母数字字符,如下所示: 第一个问题是它不能替换字符串中的等字符。 其次,我想在这个方法中添加对所有用户语言的多点支持。 我怎么能那样做? 多谢帮忙。
我有一个字符串“ECET”,我想创建所有可能的字符串,其中我用“X”替换一个或多个字母(除第一个外)。 在这种情况下,我的结果是: 关于如何处理这个问题有什么想法吗? 这不仅仅是创建“X”的可能组合/排列,还包括如何将它们与现有字符串组合。
问题内容: 我正在编写python MapReduce字数统计程序。问题是数据中散布着许多非字母字符,我发现这篇文章从Python的字符串中剥离了除了字母数字字符之外的所有内容,这显示了使用正则表达式的一个很好的解决方案,但是我不确定如何实现它 恐怕我不确定该如何使用该库甚至正则表达式。我不确定如何将正则表达式模式正确地应用于传入的字符串(书的一行)以检索没有任何非字母数字字符的新行。 有什么建议