我經常處理用戶提交到網站的列表。列表通常是這樣的:從編號列表中刪除數字和分隔符
- 項目
- 項目
的模式通常是一個數字,然後是分隔符(也可以是「 - 」或「\」或或任何「」其他典型的分離器)。數字和分隔符之間以及分隔符和列表項之間可以有一個或多個空格。有時在列表項目前沒有數字,在這種情況下不需要做任何事情。有時有一個數字,但沒有分隔符。
有沒有辦法使用正則表達式將數字和/或分隔符一起取出?
我經常處理用戶提交到網站的列表。列表通常是這樣的:從編號列表中刪除數字和分隔符
的模式通常是一個數字,然後是分隔符(也可以是「 - 」或「\」或或任何「」其他典型的分離器)。數字和分隔符之間以及分隔符和列表項之間可以有一個或多個空格。有時在列表項目前沒有數字,在這種情況下不需要做任何事情。有時有一個數字,但沒有分隔符。
有沒有辦法使用正則表達式將數字和/或分隔符一起取出?
這將匹配號碼和分離器和一個行的開頭:
^\d+\s*[-\\.)]?\s+
使用它與空字符串來代替它(取決於你所使用的語言)。
您可能需要爲角色類添加更多字符,以匹配可能的分隔符。
佳源學習正則表達式:http://www.regular-expressions.info/
我想你想要'\ d +'。其他一切都是可選的,但如果你不需要至少一位數字,那有什麼意義呢? –
@Alan:嗯,我帶*有時在列表項前面沒有數字*太字面我猜...;)謝謝,更新。 –
請繼續閱讀:「...在這種情況下,不需要做任何事情。」換句話說,如果沒有至少一個數字後面跟着至少一個空格(我之前沒有提到),那麼正則表達式應該不匹配。 –
(?=\d*\s*[-\\.]?\s*)([a-zA-Z\s*]+)
你可以在這裏查看答案:RegExr
Explanation: \d*- matches 0 or more occurrence digits \s* - matches 0 or more occurrence whitespace after the number [-\\.]? - matches 0 or 1 occurrence of '-' '.' '\' \s* - matches 0 or more occurrence whitespace after that ([a-zA-Z\s*]+) -matches any characters after that (items you need to extract)
你在分析什麼語言? JavaScript的? PHP?紅寶石? C#?等 –
我正在使用C#做解析。 – Thomas