正则表达式 - 无法删除@ Sign

时间:2018-05-23 13:35:02

标签: regex barcode

大家好,有一些正则表达式问题。我正在尝试解析具有以下格式的条形码:#D0208#@01^我需要能够在@之后和^之前获取数据。我的正则表达式工作正常,直到我在#D0208#@1^#D0208#@A^之类的指标之间放置了一条数据,然后一切都崩溃了,@符号变得很麻烦。这是我正在使用的正则代码:\w{0,}[^#D0208#\@\^\r]任何想法或正则表达式专家都会非常感激。

2 个答案:

答案 0 :(得分:0)

我会利用这样的字符类:

    # Updates approx once a second
    out = ""
    for code, num in STATUS_CODES:
        out += "{} | {}\r\n".format(code, num)

    sys.stdout.write(out)
    sys.stdout.flush()

这将匹配[^@]+@([^^]+)\^ ,包括@

之前的非^

因此,如果用英语试图捕捉^@之间的内容,那么这就可以了。

您可以在此处播放:https://regex101.com/r/JPYMmJ/1

答案 1 :(得分:0)

.*@.*\^

这个正则表达式假设

  1. 字符串中有一个@
  2. ^在最后
  3. 整个输入是条形码
  4. 之间和之前的标志可以是任何内容,包括@^
  5. 如果您的条形码前面有空格或其他内容,只需在前面添加\b(字边界)或(?< )(空格的正向前瞻)

    如果表达式

    ,则此正则表达式不匹配
    1. 不包含@
    2. 不以^
    3. 结尾

      即。 <{1}}也匹配