我正在尝试使用react-string-replace来匹配文本字符串中的所有$ Symbols。
以下是一些我们希望匹配的示例值(股票/加密货币/外汇对):$ GPRO,$ AMBA,$ BTC / USD,$ LTC / ETH
这是我们尝试的正则表达式
SCRAM
传递字符串时
$ this很棒$ this /也很棒。
通过/\$\S+[^\s]*/g
-在数组中返回正确的符号。
.match()
使用时
reactStringReplace()-每个匹配项都将返回
0: "$this"
1: "$this/works"
任何想法,为什么
works great
似乎不正确地处理此正则表达式?
谢谢你!
答案 0 :(得分:1)
检查React String Replace
documentation,它写在这里:
reactStringReplace(string, match, func)
...
匹配
类型:regexp|string
您要在string
中替换的字符串或RegExp。请注意,使用RegExp
时,您必须包括一个匹配组。
为什么要添加捕获组?请参见replaceString
功能。有var result = str.split(re);
行使用该模式来实际 分割 使用该模式将您传递给正则表达式的内容,从而整体化输入匹配和不匹配正则表达式的部分。
如果您不将组添加到作为 String 传递的正则表达式中,则捕获括号将为added automatically around the whole pattern:
if (!isRegExp(re)) {
re = new RegExp('(' + escapeRegExp(re) + ')', 'gi');
}
如果您在不捕获括号的情况下将正则表达式作为 RegExp 传递,则匹配结果将从结果数组中丢失,因此它们将消失。
所以,使用
/(\$\S+)/g
如果要在输出中保留$
个字符,或者
/\$(\S+)/g
如果您想省略美元。