通过python

时间:2015-10-02 01:30:28

标签: python

我正在尝试创建检测某些字符串的模式。基本上,目的是在字符串中检测'ABCDEF'然后返回“true”。但是在'ABC'和'DEF'之间,会有(L +计数)或(数字)或不像下面的例子。 BTW以下所有示例都返回“true”。 如果有人可以建议如何忽略“ABC”和“DEF”之间的数字和字符组合,那真的很感激吗?

 ABC(L30)(345)DEF, ABC(L2)(45)DEF, ABCDEF, ABC(L10)DEF, ABC(2)DEF

2 个答案:

答案 0 :(得分:1)

正则表达式构思思路:

  • 从ABC开始
  • 以DEF结尾
  • (L [0-9] +)或([0-9] +)或空
#!/usr/bin/python
import re
r=re.compile("ABC(\(L[0-9]+\)|\([0-9]+\)|)*DEF");
lines = [
        "ABC(L30)(345)DEF",
        "ABC(L2)(45)DEF",
        "ABC(L30)DEF",
        "ABC(345)DEF",
        "ABCDEF",
        "ABCxyzDEF",
        "ABC(L)DEF",
        "ABC(A)DEF",
        "ABC()DEF",
]
for str in lines:
        if r.match(str):
                print "    match : %s" % str
        else:
                print "not match : %s" % str

输出:

    match : ABC(L30)(345)DEF
    match : ABC(L2)(45)DEF
    match : ABC(L30)DEF
    match : ABC(345)DEF
    match : ABCDEF
not match : ABCxyzDEF
not match : ABC(L)DEF
not match : ABC(A)DEF
not match : ABC()DEF

答案 1 :(得分:0)

<my-directive ng-repeat="item in items = ( data | filter: {isExists: true})">
    something
</my-directive>
<my-second-directive counter="{{items.length}}"></my-second-directive>