", "=", "&-6ren">
gpt4 book ai didi

JavaScript 正则表达式

转载 作者:行者123 更新时间:2023-12-02 14:56:36 24 4
gpt4 key购买 nike

我正在寻找 C# Split 的替代方案,我可以在其中传递字符串数组。

string[] m_allOps = { "*", "/", "+", "-", "<", ">", "=", "<>", "<=", ">=", "&&", "||" };
string s = "@ans = .707 * sin(@angle)";
string[] tt = s.Split(m_allOps,StringSplitOptions.RemoveEmptyEntries); // obtain sub string for everything in the equation that is not an operator

我确信有一个使用 regEx 的解决方案,但我似乎不知道如何构造正则表达式。

最佳答案

首先,在 RegExp 原型(prototype)上获取一个 escape 扩展方法(使用 .NET 术语):https://stackoverflow.com/a/3561711/18771

然后:

var m_allOps = ["*", "/", "+", "-", "<", ">", "=", "<>", "<=", ">=", "&&", "||"];
var splitPattern = new RegExp( m_allOps.map(RegExp.escape).join('|') );
// result: /\*|\/|\+|\-|<|>|=|<>|<=|>=|&&|\|\|/

var s = "@ans = .707 * sin(@angle)";
var tt = s.split(splitPattern).filter(function (item) {
return item != "";
});
// result: ["@ans ", " .707 ", " sin(@angle)"]

其中过滤器函数是 StringSplitOptions.RemoveEmptyEntries 的替代品。

关于JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com