javascript - Javascript正则表达式:仅替换字符之间的连字符(不是空格)
问题描述
我想替换字符串中 2 个字符之间的连字符。2 个字符可以是除空格以外的任何字符。
string.replace(/regex/g, '');
所以
- 狗猫:狗猫
- 狗 - 猫:不变
- 1-1 : 11
- 1 - 1:不变
- $-$ : $$
- $ - $ :不变
- ^-^ : ^^
- ^ - ^ :不变
- ETC...
解决方案
您可以使用此正则表达式替换:
str = str.replace(/(\S)-(\S)/g, '$1$2');
这里(\S)-(\S)
匹配一个非空格字符,后跟连字符,然后是另一个非空格字符。我们还捕获了 group 中的两个相邻字符,然后我们放回了替换$1$2
。
const regex = /(\S)-(\S)/g;
const str = `dog-cat
dog - cat
1-1
1 - 1
$-$
$ - $
^-^
^ - ^`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, '$1$2');
console.log(result);
推荐阅读
- java - 如何在 firebase 中实时检索此元素?
- rust - Rust - 没有为 `OsString` 实现特征`StdError`
- r - 在绘图仪表图中添加悬停文本或文本注释
- angular - 如何更新Angular 9中动态添加的子组件中的值
- html - bxslider 背景图像与滑块内容 z-index 不重叠
- html - MathJax:如何使数学可复制?
- azure - 弹性数据库池的 ARM 模板失败
- python - 如何按顺序获取数字的起点并处理错误?
- go - 如何修复但不包含包 golang.org/x/sys?
- anaconda - Conda 在频道中安装所有软件包