我想要得到一個像這樣的字符串中的第二個點後的數字: 4.5.3。某種問題?但輸入字符串也可能看起來像這樣41.53.32。某種問題?以便在第二示例中針對以及。正則表達式,第二次點擊後得到數字
我試圖用
(?<=(\.\d\.))[0-9]+
做到這一點,它工作在1日例如,但當我嘗試添加(?<=(\.\d+\.))[0-9]+
這是行不通的。
我想要得到一個像這樣的字符串中的第二個點後的數字: 4.5.3。某種問題?但輸入字符串也可能看起來像這樣41.53.32。某種問題?以便在第二示例中針對以及。正則表達式,第二次點擊後得到數字
我試圖用
(?<=(\.\d\.))[0-9]+
做到這一點,它工作在1日例如,但當我嘗試添加(?<=(\.\d+\.))[0-9]+
這是行不通的。
如果總是最後的數字後點,那麼你可以使用下面的表達式:
\d+(?=\.(?:[^\d]|$))
這將匹配一個或多個數字\d+
這是後面跟着一個點.
然後東西是不是沒有字符串$
的數字[^\d]
,即(?=\.(?:[^\d]|$))
。
貶低選民的照顧評論? –
如果你使用Perl或PHP,你可以試試這個模式:
(?:\d+\.){2}\K\d+
(\d+.\d+.)\K\d+
匹配位點位點位,與第一部分作爲組未選中。
不需要downvote,這完全按照要求。 http://rubular.com/r/V5cRQL84Fj –
最簡單的完整的答案很可能是這樣的:
(?<=^(?:[^.]*\.){2})\d+
如果你在所有擔心的表現,這將是一個稍快:
^(?:[^.]*\.){2}(\d+)
這人會捕捉在捕獲組1中需要的值。
如果您使用的引擎不支持可變長度後視,則需要使用第二個版本。
如果您願意,您可以用\d
替換[^.]
,以僅匹配數字。
你使用什麼語言或工具?最後一個號碼後總會有一個點嗎? –
數字大小限制爲2位數?除了點之外,目標和輸入結束之間是否有任何文本? – Bohemian
你應該澄清你正在使用什麼語言,因爲基於語言的正則表達式之間存在差異。正則表達式是相當標準的,但並不是所有的語言都以相同的方式使用正則表達式,因此在提問時請記住這一點。 – JaidynReiman