2016-01-21 76 views
1

我試圖搜索,但無法找到我的案例。我需要匹配所有的字符串「第1部分」或「第2部分」等。但如果沒有任何「部分x」字符串匹配所有。例如:RegEx match before string or all /從匹配項中刪除字符串

  • 這裏任意一個關鍵詞第1部分
  • 任意一個關鍵詞在這裏第2部分
  • 這裏

任意一個關鍵詞應該總是返回 「這裏的任何話」。我已經試過這

(.+)(?=\spart\s\d|\sPart\s\d)

但是當「第十部分」丟失不匹配。其他解決方案是從匹配中刪除任何「part x」字符串。

謝謝你的幫忙!

+0

嘗試'(?!(部分[0-9]))+ (部分[0-9] +)?'。 –

回答

0
^.+?(?=part\s*1|part\s*2|$) 

使用anchors OR操作,part 1part 2。看到演示。

https://regex101.com/r/cZ0sD2/5

^.+?(?=part\s*\d+|$) 
+0

我需要匹配沒有「part x」字符串的回報。 –

+0

@SikySikov檢查編輯 – vks

+0

謝謝 - 這一個在應用程序 '^(。+?)(?=部分([0-9] *)| $)' –

1

你可以使用這個表達式:

^(.*?)(?: part \d+)?$ 

RegEx Demo

+0

嗨,不在這裏工作http://regexr.com/3ckld,不幸的是也沒有在應用程序中。我正在嘗試修改KODI中的刮板插件 - 請參閱http://kodi.wiki/view/RegEx_tutorial –

+0

它可以在http://regexr.com/3cklg上工作,您還需要'm'(MULTILINE)標記 – anubhava

+0

我不能標記該表達式,請參閱: ^(。*?)(?: part \ d +)?$