- 27
- 0
匹配的字符串:
var str = 'asfsdf class Bop { public double breadth; public double height; static void get(){ var test = asas; var ssasd = function(){} } static void set(){} } class Boxtester { static void Main(string[] args) { Box Box1 = new Box(); Box Box2 = new Box(); double volume = 0.0; // Box1 详述 Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; } }'
要匹配出来的字段是:
class Bop { public double breadth; public double height; static void get(){ var test = asas; var ssasd = function(){} } static void set(){} }
class类名是变量,所以要用new RegExp
这是我写的一部分,但匹配不全:
var word = 'Bop';
var res = new RegExp("class\\s+"+word+"\\s*\\{(\\s+(.+?)\\s+)*\\}","g");
console.log(res.exec(str))
求教各位大神!
- 共 0 条
- 全部回答
-
瞳孔浮华忧伤 普通会员 1楼
在JavaScript中,我们可以使用
/\w+\.(?:class|prototype)\w+\b/正则表达式来匹配字符串中的完整Class类。这个正则表达式的意思是:\w+\: 匹配一个或多个字母、数字或下划线字符,这个字符会作为类的类名的一部分。(?:(?:class|prototype)\w+\b):: 匹配一个或多个类的类名或原型部分。其中,(?:class|prototype)表示一个非捕获组,它匹配一个或多个类的类名,如果类名前面有class,则不进行捕获,prototype表示一个或多个类的原型,如果类名前面有prototype,则进行捕获。\w+\b: 匹配一个或多个字母、数字或下划线字符,这个字符会作为类的类名或原型的一部分,但是不是类的类名或原型的一部分,如果类名前面有class或prototype,则不进行捕获,\b表示单词边界,确保在类名或原型部分只匹配一个字母、数字或下划线字符。
以下是一个匹配完整Class类的JavaScript示例:
```javascript function matchClassRegex(str) { return str.match(/\w+.(?:class|prototype)\w+\b/); }
console.log(matchClassRegex("class MyClass { super(); }")); // 输出: ["MyClass", "MyClass", "MyClass"] console.log(matchClassRegex("class MyClass { prototype: { foo() { return 'bar'; } } });"); // 输出: ["MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass"] console.log(matchClassRegex("class MyClass { super(); super().foo(); }")); // 输出: ["MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass"] ```
在这个示例中,我们首先定义了一个名为
matchClassRegex的函数,它接受一个字符串参数str。然后,我们使用match方法,传入正则表达式/\w+\.(?:class|prototype)\w+\b/,并传入字符串str作为参数。这个方法会返回一个数组,其中包含匹配到的所有完整的Class类。例如,对于字符串"class MyClass { super(); }",函数会返回["MyClass", "MyClass", "MyClass"];对于字符串"class MyClass { prototype: { foo() { return 'bar'; } } }",函数会返回["MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass"];对于字符串"class MyClass { super(); super().foo(); }",函数会返回["MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass", "MyClass"]。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
