题
与有点吃力的正则表达式一点点,我有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
有没有什么特别担心的是最右边的部分是强制性的,而最左边的部分不是。
不隶属于 StackOverflow