簡體   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