簡體   English   中英

用於連字符的 Python 正則表達式

[英]Python Regex for hyphenated words

我正在尋找一個正則表達式來匹配 Python 中的連字符。

我設法得到的最接近的是:'\w+-\w+[-w+]*'

text = "one-hundered-and-three- some text foo-bar some--text"
hyphenated = re.findall(r'\w+-\w+[-\w+]*',text)

它返回列表['one-hundered-and-three-', 'foo-bar']

除了'three'后面的連字符外,這幾乎是完美的。 如果后面跟着一個'word'我只想要額外的連字符。 即,而不是'[-\w+]\*'我需要類似'(-\w+)*'東西,我認為它可以工作,但沒有(它返回['-three, ''] )。 即匹配|word后跟連字符后跟word 后跟hyphen_word 零次或多次|。

嘗試這個:

re.findall(r'\w+(?:-\w+)+',text)

在這里,我們認為一個連字符的詞是:

  • 多個單詞字符
  • 后跟任意數量的:
    • 一個連字符
    • 后跟單詞字符

暫無
暫無

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

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