regex - 正則表達式python - 正則表達式教學




正則表達式:匹配一個字符的第一次出現 (8)

我正在尋找一種可以匹配所有東西的模式, 直到第一次出現某個特定的角色,比如“;” - 分號

我寫了這個:

/^(.*);/

但它實際上會匹配所有內容(包括分號),直到最後一個分號出現為止。


"/^([^\/]*)\/$/"為我工作,從數組中獲得只有頂級“文件夾”,如:

a/   <- this
a/b/
c/   <- this
c/d/
/d/e/
f/   <- this

/^[^;]*/

[^;]表示匹配除分號以外的任何內容。 方括號是一組匹配的運算符,它本質上是匹配這組字符中的任何字符,起始處的^使其成為逆匹配,因此匹配不在此集合中的任何字符。


嘗試/[^;]*/

詳細信息請參閱Google regex character classes


嘗試/[^;]*/

這是一個否定的角色類


真的有點難過,沒有人給你正確的答案....

在正則表達式中,? 使它不貪婪。 默認情況下,正則表達式會盡可能匹配(貪婪)

只需添加一個? 它會非貪婪,盡可能少匹配!

祝你好運,希望有所幫助。


示例文本:

"this is a test sentence; to prove this regex; that is g;iven below"

例如,如果我們有上面的示例文本,那麼regex /(.*?\;)/會給你所有的東西,直到第一次出現分號( ; ),包括分號: "this is a test sentence;"


這將匹配到僅在每個字符串中的第一次出現,並且將忽略後續出現的次數。

/^([^;]*);*/

這對我非常有幫助,因為我試圖找出如何匹配包含屬性的XML標記中的所有字符。 我遇到了“匹配所有到最後”的問題:

/<simpleChoice.*>/

但能夠解決這個問題:

/<simpleChoice[^>]*>/

看完這篇文章後。 謝謝大家。





regex