Tag: 正则表达式

将URL转换为C#字符串中的超链接的最简单方法?

我正在使用Twitter API,并希望将所有URL转换为超链接。 你想出这个最有效的方法是什么? 从 string myString = “This is my tweet check it out http://tinyurl.com/blah”; 至 This is my tweet check it out http://tinyurl.com/>blah

如何validation正则表达式?

我正在.NET中开发一个应用程序,用户可以在其中提供正则表达式,然后用于validation输入数据。 我需要一种方法来了解正则表达式是否真的对.net正则表达式引擎有效。 谢谢你的帮助

将MatchCollection转换为字符串数组

有没有比这更好的方法将MatchCollection转换为字符串数组? MatchCollection mc = Regex.Matches(strText, @”\b[A-Za-z-‘]+\b”); string[] strArray = new string[mc.Count]; for (int i = 0; i < mc.Count;i++ ) { strArray[i] = mc[i].Groups[0].Value; } PS: mc.CopyTo(strArray,0)抛出exception: 源数组中至少有一个元素无法转换为目标数组类型。

正则表达式匹配除给定列表之外的所有单词

我正在尝试编写一个替换正则表达式来包围引号中的所有单词,除了单词AND,OR和NOT。 我已经尝试了以下表达式的匹配部分: (?i)(?[a-z0-9]+)(?<!and|not|or) 和 (?i)(?[a-z0-9]+)(?!and|not|or) 但都没有工作。 替换表达式很简单,目前包含所有单词。 “${word}” 所以 这和这不是那个 变 “这个”和“这个”不是“那个”

使用.net regex提取主机/端口组合 – 端口部分可选

假设我想从字符串中提取主机名和端口号,如下所示: stackoverflow.com:443 这很容易。 我可以这样做: (?.*):(?\d*) 我不担心协议方案或有效的主机名/ IP地址或tcp / udp端口,这对我的请求并不重要。 但是,我还需要支持一种扭曲,这超出了我对正则表达式的了解 – 没有端口的主机名: stackoverflow.com 我想为此使用单个正则表达式,并且我想使用命名捕获组,以便主机组始终以正匹配存在,而当且仅当我们有一个冒号后跟一些数字时,端口组才存在数字。 我试图通过对它的微弱理解做出积极的观察: (?.*)(?<=:)(?\d*) 这很接近,但冒号(:)包含在主机捕获结束时。 所以我试图改变主机,除了像这样的冒号: (?[^:]*)(?<=:)(?\d*) 这给了我一个空主机捕获。 有关如何实现此目的的任何建议,即使冒号和端口号可选,但如果它们在那里,包括端口号捕获并使冒号“消失”? 编辑:我收到的所有四个答案都适合我,但请注意其中一些答案。 由于regexp结构的良好布局和解释,我接受了sln的答案。 感谢所有回复!

基于不均匀的空白数量分割字符串

我需要拆分一个看起来像这样的字符串 1052 root 0 SW< [hwevent] 进入以下 1052 root 0 SW< [hwevent] 当然,我可以掀起一个forloop并将字符索引与白色空格进行比较,当事件不是白色空格时,将事件添加到新的字符串数组中,但我觉得这是一种非常脏的方法。 分割这个字符串的好方法是什么? 也许是正则表达式?

什么是C#正则表达式,它将validation货币,浮点数或整数?

什么是适合C#的正则表达式,如果匹配以下内容,它将validation一个数字? $1,000,000.150 $10000000.199 $10000 1,000,000.150 100000.123 10000 还是负面的等价物?

用于匹配字符的正则表达式,但不包括在方括号中

输入字符串: [Wsg-Fs]-AAA-Cgbs-Sg7-[Wwg+s-Fs]-AA-Afk-Cgbs-Sg7 期望的输出是一个字符串数组: [Wsg-Fs] AAA Cgbs Sg7 [Wwg+s-Fs] AA Afk Cgbs Sg7 如果我用-作为分隔符拆分输入字符串,方括号内的字符串也会被拆分。 如何拆分字符串,以便在方括号内忽略? 我可以找到一些类似的post试图忽略用引号括起来的分隔符,但是我无法将这些解决方案应用于我的问题。 任何建议都会非常有用。 谢谢!

为什么我的Regex.Replace字符串包含两次替换值?

我有以下字符串: aWesdE ,我想使用Regex.Replace(string, string, string, RegexOptions)转换为http://myserver.com/aWesdE.jpg 目前,我使用此代码: string input = “aWesdE”; string match = “(.*)”; string replacement = “http://myserver.com/$1.jpg”; string output = Regex.Replace(input, match, replacement, RegexOptions.IgnoreCase | RegexOptions.Singleline); 结果是输出结果如下: http://myserver.com/aWesdE.jpghttp://myserver.com/.jpg : http://myserver.com/aWesdE.jpghttp://myserver.com/.jpg : http://myserver.com/aWesdE.jpghttp://myserver.com/.jpg 因此,替换值正确显示,然后似乎再次附加 – 非常奇怪。 这里发生了什么?

正则表达式为10位数字,没有任何特殊字符

什么是10位数字的正则表达式(没有特殊字符,没有小数)。