【发布时间】:2014-06-12 23:39:40
【问题描述】:
尝试编写一个将在 python 2.7 中执行以下操作的正则表达式:
FOO 288-B BAR <MATCH: "288-B BAR">
BURT 69/ERNIE 96/KERMIT 287 <MATCH: "69">
53 ORANGE <MATCH: "53 ORANGE">
APPLE 457-W <MATCH: "457-W">
除了“空格”和“-”和“/”没有其他标点符号。我只想匹配任何数字和任何字母/单词的第一次出现,其前面带有“-”或“空格”。
我试过了:
-
这会遗漏空格后的字母。添加
\s?对我来说并不顺利。 -
这会拾取字母,但我似乎无法修改它以摆脱 反斜杠之后的内容。
-
(\d+(?:(?:\-\w+)|\w))[^\/]*(\/*.*)我正在尝试使用
[]来处理这些反斜杠。这显然是不成功的。
【问题讨论】:
-
你能显示一些预期的输出吗?
-
仅供参考我有一个错误:它可能以空格结尾。现在修好了,看看。 :)
-
为什么这个
BURT 69/ERNIE 96/KERMIT 287应该只匹配69而不是69/ERNIE 96/KERMIT 287?? -
@AamirAdnan '/' 是我唯一需要区别对待的标点符号,而不是 '-' 和 ' '。所以,基本上,如果我看到一个'/',我需要得到'/'之前的数字——并且只有那个数字('/'之后什么都没有)
标签: python regex python-2.7 regex-negation