2014-09-03 37 views
1

我正在執行'svn info --xml'並且有一個svn-repositories URL。正則表達式來確定分支svn倉庫網址

現在我想知道它的分支(或主幹)。

URL的可能是這樣的:

https://svn-domain.com/Tech/Product/branches/Version_1.0/folder

https://svn-domain.com/Tech/Product/branches/Version_1.0

https://svn-domain.com/Product/trunk/folder

https://svn-domain.com/Product/trunk

如何將一個正則表達式的外觀,返回主幹或分支名後/ branches /?

回答

2

使用positive lookbehind assertion(?<= ...))與|

(?<=/)trunk\b|(?<=/branches/)[^/]+ 

上面將匹配trunk前面加/或分支機構的名稱(即由非/字符)由/branches/之前。

注意

  • 根據您的正則表達式引擎,您可能需要逃避/
  • 一些正則表達式引擎(例如javascript)不支持lookbehind斷言。
+0

我正在使用JavaScript,所以沒有積極向後看。如何在/ branches /之後確定分支並在下一個/結束之後離開零件 – Hedge 2014-09-03 13:27:15

+0

@ Hedge,這個怎麼樣? 'var matched ='https://svn-domain.com/Tech/Product/branches/Version_1.0/folder'.match(/\/(trunk\b)|\/branches\/([^/]+ )/); var branch_name =匹配&&(匹配[1] ||匹配[2])' – falsetru 2014-09-03 13:31:02

+0

是的。我沒有爲中繼匹配,而是在沒有匹配的情況下將其假定爲默認值。 – Hedge 2014-09-03 13:50:02