1
我怎樣才能讓這個C#正則表達式不包括在匹配結果的URL之前的第一個字符:C#正則表達式,比賽,但不包括第一個字符匹配之前的字符串
((?!\").)https?:\/\/twitter\.com\/(?:#!\/)?(\w+)\/status(?:es)?\/(\d+)
這將匹配:
Xhttps://twitter.com/oppomobileindia/status/798397636780953600
注意第一個X字母。
我希望它匹配沒有雙引號的網址。對於那些不以雙引號開頭的網址,也不要在https之前加入第一個字符。
,我在我的代碼使用一個實際的例子:
var str = "<div id=\"content\">
<p>https://twitter.com/oppomobileindia/status/798397636780953600</p>
<p>\"https://twitter.com/oppomobileindia/status/11111111111111111111</p></div>";
var pattern = @"(?<!""')https?://twitter\.com/(?:#!/)?(\w+)/status(?:es)?/(\d+)";//
var rgx = new Regex(pattern);
var results = rgx.Replace(str, "XXX");
在上面的例子中,只有第一個URL應該是內容替換,因爲第二個擁有該URL前雙引號。它也應該在完全匹配的情況下被替換,沒有匹配字符串之前的第一個字母。
它匹配之前它有一個雙引號的URL。我檢查了http://regexstorm.net/tester和我的正則表達式替換函數,它並沒有阻止帶有雙引號的URL在被替換之前。我會在一秒鐘內添加一個例子。 –
我已經更新了我想要實現的問題。 1)匹配沒有第一個字符的URL。 2)不匹配以雙引號開頭的網址。感謝Wiktor幫助我。 –
我發佈了確切的逐字字符串文字。我添加了關於正則表達式用法的註釋。 –