簡體   English   中英

Python正則表達式命名組以

[英]Python regex named group starts with

我有這種正則表達式模式

r'^(?P<my_group>[-\w]+)'

這個匹配

foo-barbar-foo

但是我希望它僅匹配以'fo'開頭的字符串。如何為命名組執行此操作?

我試過了

r'^(?P<my_group>[[^fo]-\w]+)'

您不必將其放在方括號(字符類)中,而是放在方括號之外:

r'^(?P<my_group>fo[-\w]+)'

您當前的正則表達式匹配[[^fo] (即[^fo ))中的字符之一,后跟破折號,“單詞字符”和一個或多個]

您可以在此網站上測試您的正則表達式。

您應該使用fo[\\w-]+而不是[[^fo]-\\w]+ 您的角色類別有些混亂。 在方括號內,您必須放置要匹配的字符(也可以作為間隔,例如[az] )。 如果要匹配- ,則最好將其放在字符類的末尾,以避免與間隔混淆(因此,應編寫[ad-]以匹配abcd和the。 - )。 如果在字符類中您將^放在開頭,則要匹配所有未列出的字符,那么[^ad-]將匹配abcd-所有字符。 請注意,在字符類之外, ^表示字符串的開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM