[英]Python regex named group starts with
我有這種正則表達式模式
r'^(?P<my_group>[-\w]+)'
這個匹配
foo-bar
和bar-foo
但是我希望它僅匹配以'fo'開頭的字符串。如何為命名組執行此操作?
我試過了
r'^(?P<my_group>[[^fo]-\w]+)'
您不必將其放在方括號(字符類)中,而是放在方括號之外:
r'^(?P<my_group>fo[-\w]+)'
您當前的正則表達式匹配[[^fo]
(即[^fo
))中的字符之一,后跟破折號,“單詞字符”和一個或多個]
。
您可以在此網站上測試您的正則表達式。
您應該使用fo[\\w-]+
而不是[[^fo]-\\w]+
。 您的角色類別有些混亂。 在方括號內,您必須放置要匹配的字符(也可以作為間隔,例如[az]
)。 如果要匹配-
,則最好將其放在字符類的末尾,以避免與間隔混淆(因此,應編寫[ad-]
以匹配a
, b
, c
, d
和the。 -
)。 如果在字符類中您將^
放在開頭,則要匹配所有未列出的字符,那么[^ad-]
將匹配a
, b
, c
, d
和-
所有字符。 請注意,在字符類之外, ^
表示字符串的開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.