所有我有点卡在这个正则表达式(Python初学者)我在这里有一个字符串" 12x4x67"我需要将数字拆分为变量,例如:长度,宽度和高度。我成功地获得了第一组。现在我需要匹配第二组。这里是我正在使用的示例测试程序的链接。我正在使用的示例。
这是我的regex:
\d+
它仅匹配340
中的340x9x20
。
答案 0 :(得分:2)
如果您的输入始终包含全部3个部分 - 长度,宽度和高度 - 您可以使用
(?P<l>\d+)x(?P<w>\d+)x(?P<h>\d+)
请参阅regex demo
使用命名捕获,您将能够通过命名组访问任何部分。
示例:
import re
p = re.compile(r'(?P<l>\d+)x(?P<w>\d+)x(?P<h>\d+)')
test_str = "340x9x20"
m = p.search(test_str)
if (m):
print m.group("w") # => prints "9" (width)
答案 1 :(得分:2)
不需要正则表达式:
length, width, height = "12x4x67".split('x')
或者如果您更喜欢处理整数:
length, width, height = [int(s) for s in "12x4x67".split('x')]
答案 2 :(得分:1)
我更喜欢拆分方法,但要回答有关正则表达式的问题 - 这将使用\d+
来查找所有出现的情况:
lwh = "340x9x20"
numbers = [int(n) for n in re.findall("\d+", lwh)]
print(numbers) # [340,9,20]
这可以通过使用预编译的正则表达式进行优化。