使用Python正则表达式检查key:value; key:value; 字符串格式正确

用户名

我的Python程序处理由id:value;组成的字符串 对,例如:

s = "1:name;2:another name;3:one last name;"

id应该始终是数字,并且必须是最终的;是可选的。我想实现一个正则表达式,它可以检查字符串是否格式正确并为我进行拆分。

我这样写:

>>> import re
>>> r = re.compile(r'([0-9]+):([^:;]+)(?:;|$)*')

这似乎正确地进行了拆分:

>>> dict(r.findall(s))
{'1': 'name', '3': 'one last name', '2': 'another name'}

问题是我也想使用我的正则表达式来捕获格式错误的字符串。有没有办法更改它,使以下操作失败?

>>> r.match("1:name;dummy:another name;3:one last name;")
>>> r.match("1:name;a2:another name;3:one last name;")

谢谢!坦率

冰树

您可以使用包含字符串$ end的其他正则表达式执行匹配,该正则表达式将为您验证字符串。

>>> validate = re.compile(r'(([0-9]+):([^:;]+)(?:;|$)*)*$')
>>> validate.match("1:name;2:another name;3:one last name;")
<_sre.SRE_Match object at 0x02B132A0>
>>> validate.match("1:name;dummy:another name;3:one last name;") # is None
>>> validate.match("1:name;a2:another name;3:one last name;") # is also None

我想不出使用具有相同正则表达式的match和findall进行验证的方法。但是,我认为这样做也不是一个好主意。

这是关于为什么不能使用相同的正则表达式进行分组和验证的说明

您必须findall()用于获取未知数量的组,使用MatchObject完全不起作用,因为它无法处理可变数量的组。

因此,给定R您要用于该findall()函数的此正则表达式R必须将字符串中的单个表达式与数量可变的表达式匹配。但是没有办法以R类似的方式进行match()调用,因为由于R仅匹配字符串中变量号中的一个表达式,因此无法保证字符串其余部分的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用正则表达式,点组(。+?)与可选空格(\ s)不配合提取`<key> = <value>`对

来自分类Dev

使用正则表达式检查输入字符串中的无效字符

来自分类Dev

使用正则表达式检查字符串以获取有效的CSS

来自分类Dev

Perl正则表达式:从字符串中提取token_key值

来自分类Dev

使用正则表达式解析key = value

来自分类Dev

使用正则表达式检查字符串“是” javascript代码

来自分类Dev

keyword =“ value”正则表达式

来自分类Dev

无法使用包含unicode的字符串获取正确的python正则表达式

来自分类Dev

使用正则表达式删除字符串末尾的不可预测的日期格式

来自分类Dev

在搜索条件包含正则表达式的多维数组中按key = value搜索

来自分类Dev

使用流星匹配和正则表达式检查字符串

来自分类Dev

字符串格式/模板/正则表达式

来自分类Dev

使用reduce来检查数组是否包含与字符串匹配的正则表达式

来自分类Dev

Java字符串拆分方法中传递正则表达式(如![,?。\ _'@ +])的正确格式是什么?

来自分类Dev

字符串格式正确使用

来自分类Dev

使用正则表达式检查字符串是否以数字开头

来自分类Dev

将key = value字符串转换为JSON

来自分类Dev

如何检查,而不使用正则表达式的字符串格式?

来自分类Dev

如何使用正则表达式解析Javascript中特定格式的字符串?

来自分类Dev

Python正则表达式检查两个离散值的字符串长度

来自分类Dev

Python正则表达式括号匹配不返回正确的子字符串

来自分类Dev

如何使用正则表达式将字符串“ {{key.value}}”拆分为两个字符串“ key”和“ value”?

来自分类Dev

使用正则表达式从字符串获取不同格式的数字

来自分类Dev

(Python)如何针对多个正则表达式检查长字符串?

来自分类Dev

使用正则表达式动态格式化字符串

来自分类Dev

Python中特定格式的字符串正则表达式

来自分类Dev

正则表达式。检查并填充字符串以确保使用了某些字符串格式

来自分类Dev

检查字符串的正则表达式以

来自分类Dev

Perl正则表达式:从字符串中提取token_key值

Related 相关文章

  1. 1

    用正则表达式,点组(。+?)与可选空格(\ s)不配合提取`<key> = <value>`对

  2. 2

    使用正则表达式检查输入字符串中的无效字符

  3. 3

    使用正则表达式检查字符串以获取有效的CSS

  4. 4

    Perl正则表达式:从字符串中提取token_key值

  5. 5

    使用正则表达式解析key = value

  6. 6

    使用正则表达式检查字符串“是” javascript代码

  7. 7

    keyword =“ value”正则表达式

  8. 8

    无法使用包含unicode的字符串获取正确的python正则表达式

  9. 9

    使用正则表达式删除字符串末尾的不可预测的日期格式

  10. 10

    在搜索条件包含正则表达式的多维数组中按key = value搜索

  11. 11

    使用流星匹配和正则表达式检查字符串

  12. 12

    字符串格式/模板/正则表达式

  13. 13

    使用reduce来检查数组是否包含与字符串匹配的正则表达式

  14. 14

    Java字符串拆分方法中传递正则表达式(如![,?。\ _'@ +])的正确格式是什么?

  15. 15

    字符串格式正确使用

  16. 16

    使用正则表达式检查字符串是否以数字开头

  17. 17

    将key = value字符串转换为JSON

  18. 18

    如何检查,而不使用正则表达式的字符串格式?

  19. 19

    如何使用正则表达式解析Javascript中特定格式的字符串?

  20. 20

    Python正则表达式检查两个离散值的字符串长度

  21. 21

    Python正则表达式括号匹配不返回正确的子字符串

  22. 22

    如何使用正则表达式将字符串“ {{key.value}}”拆分为两个字符串“ key”和“ value”?

  23. 23

    使用正则表达式从字符串获取不同格式的数字

  24. 24

    (Python)如何针对多个正则表达式检查长字符串?

  25. 25

    使用正则表达式动态格式化字符串

  26. 26

    Python中特定格式的字符串正则表达式

  27. 27

    正则表达式。检查并填充字符串以确保使用了某些字符串格式

  28. 28

    检查字符串的正则表达式以

  29. 29

    Perl正则表达式:从字符串中提取token_key值

热门标签

归档