1(2),3,4(5,6(7,8),9),10的正则表达式
本文关键字:正则表达式 | 更新日期: 2023-09-27 18:07:35
序言:
输入字符串:1(2),3,4(5,6(7,8),9),10
我正在使用C#,我希望最终从上面的表达式中获得List<foo>
public class foo
{
public int bar { get; set; }
public List<foo> listOfFoo { get; set; }
}
我可以通过编写一些验证和逐字符解析来完成任务,但我想知道更好的方法。他们说,代码越小,bug就越少;(
查询
我正在寻找一个正则表达式,用于验证并可能捕获字符串中的信息,如
1(2),3,4(5,6(7,8),9),10
字符串基本上是一组用逗号分隔的数字。但是,使用括号(
)
,一个数字可以有一些子表达式
我想从字符串中获取一个类似的图形
1
2
3
4
5
6
7
8
9
10
我对reg-ex知之甚少。我能阅读&理解其中的大多数,但写一篇我觉得很难的
正在找人告诉我,使用RegEx是否可以实现这样的事情。如果是,应该采取什么方法?我可以看出,我需要一个递归表达式,任何链接或示例都会有很大帮助。有人愿意给我RegEx本身就是锦上添花:(
.NET正则表达式具有平衡组,允许您像本例中那样计算和匹配平衡括号。
为此,你可以使用这样的表达式:
(?x) # ignore spaces and comments
^
(?:
(?<open> '( )* # open++
'd+
(?<-open> ') )* # open--
(?:
, (?!'z) # match a , but not at end of string
| 'z # or end of string
)
)+
'z
(?(open) (?!) ) # fail if unbalanced (open > 0)
这将验证但不会解析字符串。我相信,要像你想要的那样构建一棵树,你必须使用解析器。