繁体   English   中英

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

[英]How to create regex where there can be specific char between characters in pattern and I have one “wildcard” char?

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

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

所以我的意思是,如果我得到 DTTFDD 作为 substring 其他适当的匹配将是:

  • D - TTFDD
  • D X TFDD

编辑:这些匹配可能出现在更大的字符串中,例如 FTDTTDFD D-TTFXD TFTFD

我怎样才能把所有这些放在一起?

看起来你可以尝试:

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

查看在线演示

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

没有非捕获组的冗长一点:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM