如何使用正则表达式(Python)匹配必须是字母、数字和斜杠的单词?
我有这样的清单(只是其中的一部分) 我需要找到一般规则来匹配它们,但不是第一行(简单的单词)或如何使用正则表达式(Python)匹配必须是字母、数字和斜杠的单词?,python,regex,Python,Regex,我有这样的清单(只是其中的一部分) 我需要找到一般规则来匹配它们,但不是第一行(简单的单词)或\d或\w中的任何一行(如果没有相互混合和斜杠)。允许使用像\d{8}这样的数字 我不知道如何在这3组中的每一组中使用类似于“必须”的语句——这两个都不能错过 这些模式要么不完全匹配,要么与单词匹配。如果可能,需要尽可能简单的正则表达式 \d{8}|(\w++/++\d+ \d{8}|[\w/\d]+ 编辑 这很有趣,但一些未提供的示例与建议的表达式不匹配。例如: 7/2018/4127 NWB/18
\d
或\w
中的任何一行(如果没有相互混合和斜杠)。允许使用像\d{8}
这样的数字
我不知道如何在这3组中的每一组中使用类似于“必须”的语句——这两个都不能错过
这些模式要么不完全匹配,要么与单词匹配。如果可能,需要尽可能简单的正则表达式
\d{8}|(\w++/++\d+
\d{8}|[\w/\d]+
编辑
这很有趣,但一些未提供的示例与建议的表达式不匹配。例如:
7/2018/4127
NWB/18CM032
但我知道原因,这超出了范围。然而,在一个组中添加混合数字和字母的功能,如
NWB/18CM032
,将是非常好的,我认为不会打破之前的想法 您可以将大写字符或1-8位匹配1次或多次,并使用前斜杠重复0次或多次:
^(?:[a-z0-9]+(?:/[a-z0-9]+)+|\d{8})$
那会匹配的
字符串的开头^
非捕获组(?:
将字符a-z或数字匹配1+次[a-z0-9]+
匹配一个(?:/[a-z0-9]+)+
,后跟一个字符或数字1+次,并重复1+次/
或|
匹配8位数字\d{8}
关闭组)
字符串结尾$
你是说像这样吗<代码>^(?[A-Z]+|\d{1,8})(?:/(?:[A-Z]+|\d{1,8}))*$这对这个想法很有效。谢谢然而,这是一个问题。我说它不能匹配单个单词,比如
word
。这将至少匹配带正斜杠的结构,还将匹配混合数字和字母,并且使用不区分大小写的标志。第一个与WDC/18CM005
不匹配,所以第二个将是最终答案(正如刚才在所有长列表中检查的那样)。谢谢太好了,最后一个有效!我已相应地更新了我的答案。
^(?:[a-z0-9]+(?:/[a-z0-9]+)+|\d{8})$