Python Regex -忽略前面有点的正则表达式匹配

jljoyd4f  于 2023-01-18  发布在  Python
关注(0)|答案(1)|浏览(147)

所以基本上我想匹配行中间的com-222,但是如果前面有.,我不想匹配它,例如,如果行是5545com-222,正则表达式应该返回com-222,但是如果行是5545.com-222,那么它不应该匹配。
下面的正则表达式适用于我想匹配的所有情况。\w{2,5}-\d{3}
但是现在我想修改它来忽略一个特定的情况,如果在它之前有一个.,正则表达式就不再匹配了。
我的职责是:

import re, os, sys, shutil

def getCode(file):
    codeRegex = re.compile(r'\w{2,5}-\d{3}', re.IGNORECASE)
    if codeRegex.search(str(file)) != None:
        mo = codeRegex.search(str(file))
        theCode = mo.group()
        return theCode
    return False

我试过:
[^\.]\w{2,5}-\d{3}
我试过了:[^.]\w{2,5}-\d{3}
它不起作用,回报不再正确。

lmyy7pcs

lmyy7pcs1#

谢谢你的帮助,我发现正则表达式似乎工作的两种情况:
(?〈!.)[a-z]{3,5}-\d{3}
https://regex101.com/r/LkcGs4/1

相关问题