这个可能很简单,但我找不到一个简单易懂的例子(对不起,我是RegEx的新手)。
我正在编写一些Python代码来搜索与以下任何示例匹配的任何字符串:
float[20]
float[7532]
float[]
所以这就是我到目前为止:
import re
p = re.compile('float\[[0-9]+\]')
print p.match("float[20]")
print p.match("float[7532]")
print p.match("float[]")
代码适用于第一种和第二种情况,但不适用于第三种情况(括号之间没有数字)。添加该条件的最佳方法是什么?
非常感谢!
答案 0 :(得分:4)
p = re.compile('float\[[0-9]*\]')
在字符类之后加上*表示0或字符类的匹配。
答案 1 :(得分:2)
尝试
float\[\d*\]
\ d是[0-9]的快捷方式。 星号匹配字符类的0..n(任意数量)字符。
答案 2 :(得分:0)
+
运算符至少需要一个应用它的实例,这是你的第三个选项所没有的。您希望*
运算符为0或更大。所以:
p = re.compile('float\[[0-9]*\]')
答案 3 :(得分:0)
尝试:
import re
p = re.compile('float\[[0-9]*\]')
print p.match("float[20]")
print p.match("float[7532]")
print p.match("float[]")
+
用于一个或多个元素,*
用于零个或多个元素。