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

如果按顺序[重复]使用“仅一个”下划线替换特殊字符

东方华荣
2023-03-14

我有一个字符串,其中可以有空格和特殊字符,如果空格和特殊字符按顺序排列,如何用一个下划线替换它们。

我试过gsub(/[\W]/,'_'),但这将每个特殊字符替换为下划线。

Example string: "This is a sample string & example"
Current output: "This_is_a_sample_string___example"
Expected output: "This_is_a_sample_string_example"

任何关于如何解决这个问题的帮助都会非常好。谢谢

共有1个答案

魏学智
2023-03-14

使用\W元字符和量词来匹配一个或多个连续的非单词字符。字符串#gsub替换文本只会在整个匹配中使用一次,而不会在匹配中的每个字符中使用。例如:

'This is a sample string & example'.gsub /\W+/, '_'
#=> "This_is_a_sample_string_example"

当然还有其他方法可以做到这一点,但这个解决方案适合您发布的用例。

 类似资料:
  • 可能重复: java提示。lang.String。替换问题 使用字符串。Java中的replace() 为什么“/”不换成“_”?

  • 好的,所以我把天气数据拉到我的应用程序中,为了拉出基于位置的api url,我必须在api url中插入城市和速记州(即CA、MO、NY……等)。我可以得到城市和速记州,问题是城市中的任何空格都需要被格式化为下划线,比如纽约必须等于New_York。我该怎么做呢?城市名称为字符串格式。我已经看到关于堆栈溢出的答案,但没有一个是Swift 4。

  • 如何用单个字符替换n/重复字符?所有特殊字符

  • 有没有办法用gsub替换R中的特殊字符串?我有几列里面有,我想把它改为,但是gsub不起作用 下面是一个例子: 我收到以下输出:

  • 问题内容: 我该如何更换: “ã”和“ a” “é”和“ e” 在PHP中?这可能吗?我读过某处我可以使用基本字符的ascii值和重音符号的ascii值进行一些数学运算,但是现在找不到任何参考。 问题答案: 这个答案是不正确的。 编写它时,我不理解Unicode规范化。查看francadaval的评论和链接 签出Normalizer类来执行此操作。文档很好,所以我将其链接起来,而不是在这里重复:

  • 问题内容: 我想删除的特殊字符,如多次出现,,,从我的java字符串由单下划线。我试过了 并且似乎用下划线替换了连续的相同类型的特殊字符,但否则不起作用。例如: 变成 (下划线有2个。)但是应该是。 同样对于失败的情况。我也尝试使用regex并做了一个正则表达式 但这仍然无济于事。我该如何实现? 问题答案: 注意,这是对与第一个捕获组匹配的 内容 的反向引用。要实际匹配字符类中的一个或多个任何字符