Unicode 字符串中的正则表达式
我有一些Unicode文本,想用正则表达式来清理一下。比如说,我遇到了一种情况是u'(2'。这是因为格式原因,右括号被放到了旁边的HTML单元格里。最开始我解决这个问题的方法是查看下一个单元格的内容,看看里面是否有右括号。我知道这个方法不是很好,但它确实有效。现在我想改进这个方法,但我发现正则表达式总是无法正常工作。
missingParen=re.compile(r"^\(\d[^\)]$")
我对自己正在做的事情的理解是:
^ 表示我想在字符串的开头找到
( 表示一个左括号,这个括号需要加反斜杠,因为它是个特殊字符
\d 我还想找到一个单独的数字
[ 我在创建一个特殊字符类
^ 我不想找到后面的内容
) 表示一个右括号
$ 表示在字符串的结尾
当然事情变得复杂了,我之前做了一个愚蠢的假设,以为加了\d就不会找到(33,但我错了,所以我在正则表达式里加了{1},结果还是没用,它匹配到了(3333,所以我的问题比我想的要复杂。我希望字符串只包含一个左括号和一个数字。这是不是更聪明的做法呢?
missingParen=re.compile(r"^\(\d$")
另外,S Lott _我已经标记了这个问题为初学者,所以你不能轻易得分。并不是说我不欣赏你的见解,我一直想读你的书,里面可能有答案。
1 个回答
1
好的,抱歉我把这个当成了思维的发散刺激,但写出我最初的问题似乎让我找到了方向。看起来这就是我想要做的事情的解决方案:
missingParen=re.compile(r"^\(\d$")