javascript - 在捕获组前面插入 $
问题描述
我有以下输入文本:
string name;
string type;
string class;
...
我希望将它们转换为以下内容:
string $name;
string $type;
string $class;
...
我对正则表达式的尝试:
Javascript:
"string name;".replace(/string (\w+)/,"string \$$1");
Produces (javascript console):
string $1;
string $1;
string $1;
...
Produces (regexr prompt):
string \$1;
string \$1;
string \$1;
...
为什么在第一个 $ 前面插入反斜杠不起作用?实现这一目标的正确表达是什么?
注意:我正在使用regexr(运行客户端 javascript)来批处理我的文本,并使用 Javascript 控制台和 String.prototype.replace
Chrome Devtools 中的函数来测试连续 $ 符号的行为。
解决方案
Javascript 字符串中的反斜杠仅在其处于转义序列时才有意义- 例如,'\n'
被翻译为文字换行符,被翻译为文字反斜杠等。如果您在不属于的'\\'
字符之前有一个反斜杠转义序列,例如,反斜杠将被忽略:'\$'
const str = '\$';
console.log(str);
console.log(str.length);
尽管如此,文字反斜杠并不能解决您的问题。请参阅文档- 插入文字$
作为替换字符串的一部分,使用$$
($
这里本质上是一个转义字符,有点像\
字符串文字中的转义字符):
console.log(
"string name;"
.replace(/string (\w+)/, "string $$$1")
);
推荐阅读
- python - 以允许将它们快速读取到单个数据帧中的方式存储 JSON 响应
- react-native - createStackNavigator 标题问题
- mongodb - Spyder 错误“ModuleNotFoundError:没有名为 'pymongo' 的模块”
- javascript - 为什么未定义同一函数中的 var?
- algorithm - 使用联合查找(又名不相交集)检测图是否为二分图
- reactjs - 网格还是 Flexboox?如果使用 react-semantic-ui
- python - Python 错误:索引错误:字符串索引超出范围搜索 [1]
- prolog - Prolog没有找到所有解决方案
- php - 用于 webapp 的 IP 的 Azure MySQL 连接安全性
- javascript - reactjs 获取 PUT 值并将值传递给状态