2012-09-17 58 views
0

我有這樣的正則表達式:正則表達式,禁止雙破折號

^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)([a-zA-Z]|)(\:|)[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+$ 

這不允許以單破折號的文件名。但我不想只允許雙破折號(文件名/文件夾中的任何地方),單破折號應該沒問題。

感謝您的任何信息。

回答

1

最後將[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+更改爲一個表達式,該表達式允許此字符類(可選)後跟一個破折號,然後是該字符類,重複任意次數。如果您願意,也可以添加一個可選的前導和尾隨短劃線。 (我有他們在這裏添加,因爲它更容易比解釋:-)

^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)([a-zA-Z]|)(\:|)-?[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+(-[^\x00-\x1f\'\?\-\*\:\"\;\|\/]+)*-?$ 

我需要至少一個非破折號;如果你想允許一個破折號,第一個非可選組可能會包括這一點,但後來的上下文將不得不看起來不同。

我會使用非捕獲組,但是你沒有告訴你正在使用哪種正則表達式,所以也許你沒有它們。

+0

感謝您的幫助:) – Khrys

相關問題