2014-11-04 41 views
2

的我現在有這個(C#)字符或結束時終止:正則表達式就行

http:\/\/([^""']*[^""']*).*?((?=<)|(?=$)) 

正如你可以看到我想要使用先行終止線的<或結束的正則表達式。 以上是不工作:(如果我刪除|(?=$)然後它只會工作,如果<在字符串中。我怎麼能得到正則表達式終止當<$發生?(注意:我不想包括在<在我的結果)

任何指針將不勝感激。

+0

你能描述一下你的目標嗎?您是否正在尋找位於行尾或緊跟着「<」字符的網址? – Gus 2014-11-04 14:09:57

+0

您是使用SingleLine還是Multiline作爲選項? – OmegaMan 2014-11-04 14:19:29

+0

@Gus要找到任何以http://開頭的網址,但有些網址包含html元素(不要問我爲什麼,我不知道),我想確保在'<'之前退出,打開一個新的標籤,網址將仍然有效。 @OmegaMan Multiline and IgnoreCase – Drakkainen 2014-11-04 14:22:56

回答

2

您需要<符號添加到字符類也或以其他方式捕獲組貪婪地捕捉<性格也。

http:\/\/([^"'<]*[^"'<]*).*?(?=<|$) 

DEMO

[^"'<]*[^"'<]*如果原始字符串具有多行,那麼請不要忘記,包括\n字符類裏面會被寫爲[^"'<]*

@"http:\/\/([^""'<]*).*?(?=<|$)" 

。最好包含多行修飾符。

@"(?m)http:\/\/([^""'<\n]*).*?(?=<|$)"  
1

我怎樣才能獲得正則表達式來終止當任<或$

您可以使用此lookah與交替EAD:

(?=<|$) 
+0

我用'http:\/\ /([^「''] * [^」''] *)。*?(?= <| $)'現在它不會終止於'<'。 – Drakkainen 2014-11-04 14:10:14

+0

你能告訴我你的輸入字符串 – anubhava 2014-11-04 14:10:32

+0

'http://ds.serving-sys.com/BurstingCachedScripts//ReportPage_2_8_2_0.html?ebReportURL=http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn = brd&Page

  • 11. 正則表達式從行
  • 12. 多行正則表達式
  • 13. 正則表達式多行
  • 14. java正則表達式行
  • 15. 多行正則表達式
  • 16. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
  • 17. Shell命令就地多行正則表達式替換
  • 18. 正則表達式正則表達式返回的值正則表達式
  • 19. 正則表達式正則表達式模仿正則表達式
  • 20. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
  • 21. 正則表達式表達
  • 22. 正則表達式表達
  • 23. 正則表達式表達
  • 24. Java正則表達式組與。* vs正常正則表達式
  • 25. 正則表達式多行:IP修正
  • 26. Nintex正則表達式模式正則表達式
  • 27. 設置從正則表達式模式到正則表達式?
  • 28. 正則表達式(正則表達式)模式匹配
  • 29. Python的正則表達式:「喜歡」正則表達式模式?
  • 30. 形式的Java正則表達式PHP正則表達式