我目前正在嘗試製作一個表達式,用於獲取在它們之後沒有空格的所有逗號以及所有冒號。正則表達式逗號沒有後面的空格
我試過(,([^\s]))|([:])
,這很接近,但似乎在沒有空格的逗號後面抓住了字符。
我也試過(,\s+)|([:])
,它會抓住所有的冒號和所有的逗號,後面跟一個空格以及空格。
我想選擇被封閉在* *在以下幾點:
你好,我的名字是*:* tibsar *,*好嗎?
任何想法?
我目前正在嘗試製作一個表達式,用於獲取在它們之後沒有空格的所有逗號以及所有冒號。正則表達式逗號沒有後面的空格
我試過(,([^\s]))|([:])
,這很接近,但似乎在沒有空格的逗號後面抓住了字符。
我也試過(,\s+)|([:])
,它會抓住所有的冒號和所有的逗號,後面跟一個空格以及空格。
我想選擇被封閉在* *在以下幾點:
你好,我的名字是*:* tibsar *,*好嗎?
任何想法?
我認爲這個正則表達式會完成這項工作。
正則表達式:(,(?=\S)|:)
說明:
(?=\S)
這positive lookahead
檢查,
後性格是不是whitespace
但不捕獲它匹配。 [^\s]
與\S
相同。
並使用變更|
匹配:
哪些可能出現在任何地方。
To match , at end of line(if needed).
你在哪裏錯了(,([^\s]))|([:])
和(,\s+)|([:])
?
(,([^\s]))
不匹配的逗號緊跟非空白,但它也捕捉它在比賽中。
(,\s+)
Straightaway匹配一個逗號,然後是空格,所以這是完全錯誤的。
工作!當我可以 –
我會很高興它做到了。 –
請注意,這不會在字符串/行的末尾生效(因爲字符串的末尾不是字符,因此不會匹配'\ S'。您應該使用* negative * lookahead來代替:',(?!)'。 @tibsar:請注意'\ S'(和'\ s')非常廣泛,涵蓋的內容遠不止是空格。以防萬一空間和標籤之間的區別對你很重要。 – Joey
您是否有一些您期待的有效匹配的例子? –
@noob更新了問題! –