定义正则表达式的结束和开始

米歇尔 V。

假设我有一个程序代码列表,如下所示:

  procedure_codes = ['038911.B', '32431.1', 'fdsfd.B', '13635.1B', '78935.1b']

在python中,我现在想提取所有代码:

  • 没有前导零
  • 其中第一个字符是数字
  • 包含一个“.” 某处
  • '.' 后面有数字
  • 不以“b”或“B”结尾

对我来说,最合乎逻辑的方法似乎是使用正则表达式,所以我尝试了

  • ([^0]+) 不选择前导零的字符串
  • (\d+) 只选择第一个字符是数字的字符串
  • (.) 只选择包含 '.' 的字符串 某处
  • (\d?) 仅选择在 '.' 后包含数字的字符串
  • ([^bB]?) 不选择以 'b' 或 'B' 结尾的字符串

组合(对于列表中的每个元素):

  for i in procedure_codes:
      if re.search('[^0]\d+\.\d[^bB]?', i):
          print(i)

我怀疑 python 只返回代码:'32431.1',但返回的是:

  • 32431.1
  • 13635.1B
  • 78935.1b

因此似乎最后的否定被完全忽略了

由于我对使用正则表达式完全陌生,我不知道我是否只是犯了语法错误,或者我是否完全误解了正则表达式。

达里亚·皮多连科

只需用^包装你的正则表达式,$分别匹配行首

^[^0]\d+\.\d[^bB]?$

因为没有它们,它会在中找到13635.1group13635.1B并且与78935.1b.

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查正则表达式以正则表达式开始和结束

正则表达式自定义开始和结束引号 .Net

正则表达式匹配以使用angular的表达式开始和结束

令牌中的正则表达式的开始/结束

正则表达式-如果开始匹配则匹配结束

正则表达式-用开始和结束引号替换带引号的字符串

Java –正则表达式–匹配开始和结束的卷曲标签

PHP正则表达式:从开始和结束删除所有字符

如何使用开始和结束字符验证来构建验证正则表达式?

返回开始和结束正则表达式之间的文本

Javascript 正则表达式如何匹配开始和结束标记

如何在Perl中提取开始和结束正则表达式之间的行

Python正则表达式,匹配组范围(开始和结束)

用正则表达式匹配字符串的相同开始和结束字符

正则表达式获取字符串的开始和结束匹配

正则表达式,用于删除开始和结束引号之间的空格(PHP)

查找指定长度的正则表达式,并在Java中也指定开始和结束

修改正则表达式以匹配开始和结束字符

使用开始和结束正则表达式选择单词

正则表达式以捕获方括号之间的开始和结束空格

与正则表达式类似的SQL,等效于行的开始^和结束$

正则表达式匹配由开始和结束单词分隔的单词前后的多行

正则表达式在开始和结束时排除字符

正则表达式匹配从开始和结束的连续字符

PHP正则表达式以给定数字开始和结束

Java正则表达式选择字符串中的开始和结束引号

正则表达式表示开始和结束特定单词[无重复]

正则表达式在开始和结束标记之间替换Unicode

正则表达式替换php中开始和结束标记之外的所有内容