这可能已经被问到了,但我似乎找不到任何副本,所以我会问自己,希望我没有被标记。
我正在使用状态机构建一个小型解析器,每当检测到{时,它就切换到子解析器中。我只想第一次出现我的正则表达式将匹配在我目前的位置。基本上,我的正则表达式是keymatch = re.compile(r'^\{([A-Za-z0-9])\}'),我使用的是字符串this {is} a {test} string。
问题是,当我运行keymatch.match(myString, pos)时,我没有得到匹配,我也尝试过使用keymatch.search(myString, pos),并找到了相同的结果。
作为记录,pos指向正确的位置,硬编码的值也不返回,而在regex中没有位置或前导^返回所有匹配,这是我不想要的,因为我是如何逐字符重建字符串的。此外,如果在pos没有找到匹配项,我希望我的match对象是none来触发一个错误,而不是只给出它找到的字符串中的任何内容。
我的方法有什么明显的问题吗?如果是的话,我能做些什么来修复它呢?
发布于 2017-02-02 15:46:52
^表示字符串的开头。因此,它只是寻找第一个字符是一个开放的括号。您可以删除^
https://stackoverflow.com/questions/42006353
复制相似问题