如何创建正则表达式,其中模式中的字符之间可以有特定的字符,而我只有一个“通配符”字符?

2024-09-27 00:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python中创建正则表达式,在这里我得到一个子字符串,我想在字符串中找到它。子字符串和我的字符串中的字符始终为D、T或F。匹配有两个条件:

  1. 在给定子字符串中的每个字符之后都可能出现char'-'(我不知道如何特别接近这个字符)
  2. 每个字符都可以是我正在查看的字符或“X”,因此X是一个“通配符”(我知道我可以使用“|”,因此我相信([DTF]|X))

所以我的意思是,如果给我DTTFDD作为子字符串,其他合适的匹配将是:

  • D-TTFDD
  • DXTFDD

编辑:这些匹配可以出现在更大的字符串中,例如FTDTTDFDD-TTFXDtftftfd

我怎样才能把这些放在一起呢


Tags: 字符串编辑条件字符char通配符dtf定子
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:40

看起来你可以试试:

[DX]-?(?:[TX]-?){2}[FX]-?(?:[DX]-?){2}

请参阅联机demo

  • [DX]-?-后跟可选连字符的文字“D”或“X”
  • (?:-打开非捕获组:
    • [TX]-?-后跟可选连字符的文字“T”或“X”
    • ){2}-关闭非捕获组并匹配两次
  • [FX]-?-后跟可选连字符的文字“F”或“X”
  • (?:-打开非捕获组:
    • [DX]-?-后跟可选连字符的文字“D”或“X”
    • ){2}-关闭非捕获组并匹配两次

如果没有非捕获组,就不会那么冗长:

[DX]-?[TX]-?[TX]-?[FX]-?[DX]-?[DX]-?

相关问题 更多 >

    热门问题