gpt4 book ai didi

c# - 正则表达式拆分 obj.method(obj.attr, obj.attr2)

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:01 31 4
gpt4 key购买 nike

我正在寻找一个正则表达式来分割这种内容:

obj.method(obj.attr,obj.attr2)

我希望拆分返回一个数组:

["obj", "method(obj.attr, obj.attr2)"]

所以,我不能在“.”上拆分因为它还会拆分方法属性的内容。

我必须在“.”上拆分我认为只有当它们不在“(”和“)”之间时。

任何帮助将不胜感激,谢谢!

最佳答案

如果你真的想用正则表达式解决这个问题,最好用匹配而不是拆分。

为此你可以使用 balancing groups计算左括号的个数。

例如,您可以获取此表达式的所有匹配字符串,以获得所需的结果:

(?x)                    # allow comments and ignore spaces
(?:
[^.()]+ # don't match .
|
\(
(?:
[^()]+ # in here . are allowed
| (?<open> \( ) # open++
| (?<-open> \) ) # open-- (as long as open > 0)
)*
(?(open) (?!) ) # fail if open > 0
\)
)+

关于c# - 正则表达式拆分 obj.method(obj.attr, obj.attr2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007573/

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