【问题标题】:Regex python help for coordinate format坐标格式的正则表达式 python 帮助
【发布时间】:2021-10-02 02:12:58
【问题描述】:

我正在开发一个以特定格式接受输入的程序: 例如“(1,2)(2,3)(4,3)”。它们是坐标,可以有无限多个坐标“(1,2)(2,3)(4,3)...(a,b)”。我正在编写一个函数“checkFormat(str)”,如果满足格式则返回 true。我曾尝试在不使用正则表达式的情况下编写一个函数,但事实证明它太难了。在正则表达式方面需要帮助。

【问题讨论】:

  • \(\d,\d\) 不会吗?
  • 检查我的答案并告诉我它是否不起作用或需要任何帮助。

标签: python regex


【解决方案1】:

使用^$ 匹配整个输入。中间是一组或多组填充数字的(...)。 假设坐标是整数并且中间没有多余的空格:

^((\((\d)+\,(\d)+)\))+$

如果+/- 被允许并且0 没有符号并且不能被扩展(0001 不被接受)

^(\(([-\+]?[1-9]\d*|0)\,(([-\+]?[1-9]\d*)|0)\))+$

如果包含十进制数:

^(\(([-\+]?[1-9]\d*|0)([.]\d+)?\,(([-\+]?[1-9]\d*)|0)([.]\d+)?\))+$

检查输入是否匹配:

import re
pattern=r'^(\(([-\+]?[1-9]\d*|0)([.]\d+)?\,(([-\+]?[1-9]\d*)|0)([.]\d+)?\))+$'
input='(0,2)(1,2)'
result=bool(re.match(pattern,input))

【讨论】:

    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2011-06-10
    相关资源
    最近更新 更多