我有一个匹配字符串中的所有三个字符单词的正则表达式:Python正则表达式不匹配。 (点)作为字符
\b[^\s]{3}\b
当我使用它的字符串:
And the tiger attacked you.
这就是结果:
regex = re.compile("\b[^\s]{3}\b")
regex.findall(string)
[u'And', u'the', u'you']
正如你可以看到它匹配你的三个字符的话,但我想表达的,采取“你。”与“。”作为一个4字的词。
我有同样的问题“”,‘’,‘’等
我用正则表达式相当新的,但我想这是因为这些字符,如文字处理边界。
是否有这样做的一种方式?
由于提前,
编辑
Thaks到@BrenBarn和@Kendall弗雷我的答案,设法以正则表达式我一直在寻找:
(?<!\w)[^\s]{3}(?=$|\s)
这很明显,如果你告诉它,它必须准确3个字符匹配不匹配4个字符的任何东西。你想用什么规则来决定是否/何时匹配第四个字符? – BrenBarn 2013-05-02 19:18:06
我不希望它匹配,我只是想将'you.'视为4个字符的单词,因此它与正则表达式不匹配 – xgusix 2013-05-02 19:23:48
您希望将哪些字符计为字边界? – BrenBarn 2013-05-02 19:24:46