我正在寻找正则表达式以从匹配项中排除特定子字符串



基本上我有这些字符串,我在Python 3.9上编程:

'P425-TK-1501'
'P425-UN-1840'
'P900-TP-1001'

如果我想匹配除TP(P900-TP-1001)之外的所有字符串,该怎么办?

正如你所看到的,我在这里的挑战是包括P425-TK-1501但排除P900-TP-1001

我试过排除,但它似乎不与我需要的工作。

[UPDATE]所以基本上,我已经写了一个代码来提取文本文件中的特定字符串。在文本文件中,有单词、数字、空格等。我想提取的字符串具有使用此正则表达式搜索的特定格式:'[BPC][3-9]d{2}-[A-Z]{2}-[1-2]d{3}'。

它的作用:

  1. 查找B、P或C作为第一个字符。
  2. 第二次搜索3 ~ 9之间的数字。
  3. 为第三个&第四。
  4. 查找第五个连字符。
  5. 查找从a到Z的第六和第七个字母。
  6. 等等…

我想要的是,Regex排除特定的字符串'TP'(按此顺序),不排除'TK',这可能在文本文件中多次出现。

要排除子字符串,只需接受不包含子字符串的字符串。不需要正则表达式

data = ['P425-TK-1501', 'P425-UN-1840', 'P900-TP-1001']
new = [x for x in data if 'P900' not in x]

生产

['P425-TK-1501', 'P425-UN-1840']

最新更新