正则表达式 - 不能删除 @ 符号

Regex Expression - Cannot Drop The @ Sign

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

我会像这样利用字符 类:

[^@]+@([^^]+)\^

这将匹配并包括 @,然后捕获非 ^ 直到 ^

因此,如果您在英语中试图捕捉 @^ 之间的内容,这将起到作用。

你可以在这里玩:https://regex101.com/r/JPYMmJ/1

.*@.*\^

此正则表达式假设

  1. 你的字符串中有一个@
  2. ^在最后
  3. 整个输入就是条形码
  4. 之间和之前的符号可以是任何符号,包括@^

如果您的条形码前面总是有一个白色space 或其他东西,只需添加一个 \b(字边界)或一个 (?< )(对 space) 在前面

如果表达式匹配,则此正则表达式不匹配

  1. 不包含 @
  2. 不以 ^
  3. 结尾

@^ 也会匹配