簡體   English   中英

具有多個選項的PowerShell RegEx

[英]PowerShell RegEx with multiple options

給定文件名22-PLUMB-CLR-RECTANGULAR.0001.rfa我需要一個RegEx來匹配它。 基本上是任何可能的字符,然后是。 和4位數字以及四個可能的文件擴展名之一。 我嘗試了^.?\\.\\d{4}\\.(rvt|rfa|rte|rft)$ ,我原以為是正確的,但是我想我對RegEx的理解並沒有達到我的期望/希望。 現在, .?\\.\\d{4}\\.(rvt|rfa|rte|rft)$確實可以工作,唯一的區別是我沒有用^指定字符串的開頭。 在另一種情況下,文件名始終以journal.####.txt的形式出現時,我使用^journal\\.\\d{4}\\.txt$ ,它像冠軍一樣與journal.0001.txt匹配。 顯然,當我指定一個特定的字符串時,沒有任何帶有。?的字符。 是有區別的,但是我不明白為什么。

^.? 表示匹配輸入字符串的開頭,然后匹配一個可選的單個字符。 然后,它查找由點和數字組成的序列,但沒有任何內容。 因為我們還沒有通過第一個字符。

為什么沒有^可以工作? 因為沒有^它允許遍歷所有字符以找到匹配項,並且它在R之前停止並繼續匹配直到結尾。

很好,但是第一種方法應該是^.* Kleene star貪婪地匹配所有事物,然后回溯,但是? 是這里的運算符,它使前面的模式成為可選。 這意味着一個字符,而不是多個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM