与有点吃力的正则表达式一点点,我有4码的字符串

码4:CODE3:CODE2:CODE1

每个码是可选除了CODE1

所以我可以有AB:BC,DE:FG

BC :: FG

AB ::: FG

在上述CODE1 = FG DND的每一种情况下为我的亲爱的生活我不能工作了正则表达式

很容易做,因为一个标准的字符串解析,但unforunatly因为需求楼内设有商务对象通过正则表达式:-(完成并通过vb.net RegEX.matche,组(“代码1”)FG(我回来希望是有道理的)

预先感谢任何帮助

结束了一个正则表达式一点,做的工作,有点乱,但它的工作原理

(^(?<code1>[\w]*)$)|(^(?<code2>[\w]*):(?<code1>[\w]*)$)|(^(?<code3>[\w]*):(?<code2>[\w]*):(?<code1>[\w]*)$)|(^(?<code4>[\w]*):(?<code3>[\w]*):(?<code2>[\w]*):(?<code1>[\w]*)$)

所有的Ta

有帮助吗?

解决方案

有没有必要在这里使用正则表达式。

我不知道你使用的是什么语言,但在分割字符串“:”,你就会有代码的数组

如果你真的只是想验证一个字符串是否是有效的,然后这个

/(\w*:){0,3}\w+/

你的描述,你已经给了一些例子相符。

其他提示

我不知道为什么你的代码相匹配从右到左。简单地使用正则表达式来挑开字符串:

/(.*):(.*):(.*):(.+)/

和,那么你必须在CODE1 $ 4中,在CODE2 $ 3中,在CODE3 $ 2,码4 $ 1。

(CODE1)?:(CODE2)?:(CODE3)?:CODE4会工作 - 如果领导:并不重要。否则,如果你不能拥有领先的冒号,列举:

(CODE1:(CODE2)?:(CODE3)?:|CODE2:(CODE3)?:|CODE3)?CODE4

有没有什么特别担心的是最右边的部分是强制性的,而最左边的部分不是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top