python 2.7正则表达式在pos处搜索'^'从pos开始

时间:2017-02-02 15:40:00

标签: python regex python-2.7

这可能已经被问到了,但我似乎找不到任何重复,所以我会问自己,希望我不会被标记。

我正在使用状态机构建一个小解析器,只要检测到{,就会切换到子解析器。我只希望我的正则表达式首次出现在我目前的位置。基本上我的正则表达式是keymatch = re.compile(r'^\{([A-Za-z0-9])\}'),我使用字符串this {is} a {test} string

问题是我在运行keymatch.match(myString, pos)时无法匹配我已经尝试使用keymatch.search(myString, pos)并找到相同的结果。

对于记录,pos指向正确的位置,硬编码值也没有返回,而我的正则表达式中没有位置或前导^返回所有匹配,我不想要因为我是怎样的逐个字符地重建字符串。另外,如果在pos处找不到匹配项,我希望我的匹配对象为none来触发错误,而不是仅仅向它发现它找到的字符串。

我的方法有什么明显错误,如果有,我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

^表示字符串的开头。所以它只搜索第一个字符是一个开放括号。您可以删除^