返回列表 发帖

唉..........又来求正则了

本帖最后由 Lie_li 于 2010-3-9 13:55 编辑

aaa bbb cccc  

这3个字符任意位置搭配 中间可以穿插任意字符 必须同时存在 不必\b圈起来

另外这3组字符 在一行中必须同时出现,缺少任意一个都不行。


感觉很丢脸  学正则那么久了都

感觉自己对正则还处在狂热期,一切字符问题都可以‘一正解万难’,可纠结到最后不得不与其他程序妥协相互合作解决问题。

一般正则在文本什么样的情况下会失去‘一正解万难’的效力?

TOP

能否给出一两例可以成功匹配的目标文本?
是否可以这样理解:
保证该行文本必须出现至少一个a,一个b,一个c,顺序无关,重复次数无关。其它字符任意?
如果是这样的话
正则如下:
  1. (?=.*?a.*?)(?=.*?b.*?)(?=.*?c.*?)^.*$
复制代码
在答疑解惑版提问时,请注明所用语言、范例文本、匹配结果。谢谢!
------------------------------------------------------------------------------
我爱正则表达式
GTalk: rex[at]zhasm[dot]com
Twitter: rex_zhasm

TOP

太帅了.............

不过看不太懂
你用了3个“右边是什么”的环视,光这位置信息就已经头晕了

至于最后的“ ^.*$  ”单独使用是匹配某一行只有某一字符,但加在后面 我就不太明白了

TOP

我想我想明白了
首先环视是不匹配东西的,真正匹配的是最后的^.*$

意思是匹配任意一行
该行的任意位置的右边开始起是任意字符接着是abc任意一个接着任意字符


对吧......

TOP

这样的问题就不太适合用正则了。

TOP

首先环视是不匹配东西的,真正匹配的是最后的^.*$

前边的三个环视,是为了约束后面真正的匹配,满足环视中的条件。即,里面必须分别保证a,b,c都能出现.
在答疑解惑版提问时,请注明所用语言、范例文本、匹配结果。谢谢!
------------------------------------------------------------------------------
我爱正则表达式
GTalk: rex[at]zhasm[dot]com
Twitter: rex_zhasm

TOP

bool include_a_b_c = Regex.IsMatch(@"a1bdacfd",
@"^(a(?<a>)|b(?<b>)|c(?<c>)|[^abc])+(?(a)|(?!))(?(b)|(?!))(?(c)|(?!))$")
CSDN论坛VB.net版块

TOP

返回列表