C# 正则表达式匹配单词,除非它是';这是url的一部分
我试着匹配一个词的所有出现。。。除非它们出现在url中,否则我不想匹配它。 假设我在尝试匹配“co”这个词C# 正则表达式匹配单词,除非它是';这是url的一部分,c#,regex,c#-4.0,C#,Regex,C# 4.0,我试着匹配一个词的所有出现。。。除非它们出现在url中,否则我不想匹配它。 假设我在尝试匹配“co”这个词 should match: cots and co should not match: not http://me.co.uk should match: last of my co. 我试着用一种消极的眼光来看待后面的情况,包括: \b确保cots中的co不匹配,但仍与url中的co匹配 (?!http).*\bco\b // This matches the whole sente
should match: cots and co
should not match: not http://me.co.uk
should match: last of my co.
我试着用一种消极的眼光来看待后面的情况,包括:
\b
确保cots
中的co
不匹配,但仍与url中的co
匹配
(?!http).*\bco\b // This matches the whole sentence until the url
(?!http.*)\bco\b // this doesn't match anything
不确定是否应该使用反向查找,在我的例子中,可以安全地假设所有url都以http://
开头,所以我正试图从这里开始
那么,除了url中的co
之外,我将如何匹配所有位置
编辑:
我只想匹配单词,而不是整个句子我在c上做这个# 编辑2: 我要做的是将所有非url关键字转换为我博客上的内部url 我现在得到的是:
string orig = "co and http://me.co.uk";
string pros = Regex.Replace(orig, @"https?://\S*?co|\bco\b", m => string.Format("<a href='/co'>co</a>"));
string orig=“co和http://me.co.uk";
string pros=Regex.Replace(orig,@“https:/\S*?co|\bco\b”,m=>string.Format(“”);
(使用下面的答案)
这给了我
<a href='/co'>co</a> and <a href='/co'>co</a>.uk
和.uk
我想要的是
<a href='/co'>co</a> and http://me.co.uk
和http://me.co.uk
谢谢您可以在C#中使用这样的正则表达式:
(?试试这个:
^(?!http\S+\.co(\.|\?|$)).*\b(co)\b
匹配在第1组中-参见这些输入:
cots and co
last of my co.
http://me.co.uk
http://me.example.co
http://me.example.co?foo=bar
您正在尝试匹配包含字符串或整行的单词吗?您用于正则表达式的语言/工具是什么?负面外观如下:(?你使用的是负面前瞻!…@Unihedron啊!我一定是看错了,会更正回来的,谢谢,我可能遗漏了什么,但这切断了上次匹配的所有文本!嗨,这与你链接的在线演示上的url不匹配,但是,出于某种原因,在我的c上它是匹配的。演示上的~
对我有什么影响一个?啊,它似乎也与url匹配,看看这里的替换栏:太棒了,这很有效,谢谢!我尝试了(?…它从一开始就选择了所有内容..有点接近,但没有雪茄!不客气,很高兴它成功了。只因为C#regex允许可变长度的查找。
^(?!http\S+\.co(\.|\?|$)).*\b(co)\b
cots and co
last of my co.
http://me.co.uk
http://me.example.co
http://me.example.co?foo=bar