Tag: regex

是否有一个函数返回RegEx匹配开始的索引?

我有15个字符长的字符串。 我正在使用正则表达式对其执行一些模式匹配。 我想知道IsMatch()函数返回true的子字符串的位置。 问题:是否有任何函数返回匹配的索引?

如何有条件的正则表达式

我想要一个正则表达式做一件事,如果它有3个实例. 在字符串中,如果它有超过3个实例,则为其他内容。 例如 aaa.bbb.ccc.ddd // one part of the regex aaa.bbb.ccc.ddd.eee // the second part of the regex 我如何在js或c#实现这一目标? 就像是 ?(\.){4} then THIS else THAT 在正则表达式内…… 更新 好吧基本上我正在做的是这样的: 我想将任何给定的System.Uri切换到扩展方法中的另一个子域。 我遇到的问题是我的域名通常是http://subdomain.domain.TLD.TLD/more/url ,但有时候,它可能只是http://domain.TLD.TLD/more/url (这只是指向www ) 所以这就是我提出的: public static class UriExtensions { private const string TopLevelDomainRegex = @”(\.[^\.]{2,3}|\.[^\.]{2,3}\.[^\.]{2,3})$”; private const string UnspecifiedSubdomainRegex = @”^((http[s]?|ftp):\/\/)(()([^:\/\s]+))(:([^\/]*))?((?:\/)?|(?:\/)(((\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?))?$”; private const string SpecifiedSubdomainRegex […]

没有行开头和结尾终结符的Regex.Replace有一些非常奇怪的效果……这里发生了什么?

在回答这个问题时, C#Regex Replace和*提出了问题存在的原因。 在播放时我制作了以下代码: string s = Regex.Replace(“.A.”, “\w*”, “B”); Console.Write(s); 这有输出: B.BB.B 我得到0长度字符串在之前和之后匹配. 字符,但为什么A被2个B取代。 我可以理解B.BBB.B替换A或BBB两侧的零长度字符串但实际结果让我感到困惑 – 任何帮助都值得赞赏。 或者正如AakashM所说: 为什么Regex.Matches(“A”, “\w*”).Count等于2 ,而不是1或3 ?

C#中正则表达式中的外语字符

在C#代码中,我试图传递中文字符: ” 中文ABC123″ 。 当我使用”^[a-zA-Z0-9\s]+$”时使用字母数字时, 它没有通过”中文ABC123″ ,正则表达式validation失败。 我需要为C#添加哪些其他表达式?

C#hex值0x12,是无效字符

我正在加载大量的xml文档,其中一些返回错误,如“hex值0x12,是一个无效字符”,并且有不同的字符。 如何删除它们?

C#正则表达式匹配括号内的任何内容

我想匹配括号内的任何内容,但结果也必须排除括号。 例子: 初始化(P90W) 制动器(45X) 结果: 990W 45X 注意没有圆括号的结果。 我一直在努力使这项工作,但无济于事我尝试了一些变化,但我知道这是一个简单的事情,我错过了,我不想使用替换来实现它。 var item = “Brake(45X)” Regex searchTerm = new Regex(@”\((.*)\)”); var value = (searchTerm.Match(item).Groups.Count > 0) ? searchTerm.Match(item).Groups[0].Value : string.Empty;

如何指定仅匹配第一次出现?

如何使用Regex方法指定仅匹配C#中第一次出现的正则表达式? 这是一个例子: string text = @””; string pattern = @”()”; Regex myRegex = new Regex(pattern, RegexOptions.IgnoreCase); Match m = myRegex.Match(text); // m is the first match while (m.Success) { // Do something with m Console.Write(m.Value + “\n”); m = m.NextMatch(); // more matches } Console.Read(); 我希望这只能替换第一个 。 然后对其余的比赛做同样的事情。

C#Regex匹配不包含某个字符串的字符串?

我想匹配任何不包含字符串“DontMatchThis”的字符串。 什么是正则表达式?

自定义正则表达式未在客户端validation

我已经构建了一个自定义属性,以在客户端validation正十进制值。 问题是,当我将正则表达式直接应用于属性时,它工作正常,但是当我使用自定义属性时,它不起作用。 工作模式: [RegularExpression(@”^(?!0?(,0?0)?$)([0-9]{0,3}(,[0-9]{1,2})?)?$”, ErrorMessage = “Largura inválida.”)] [Required(ErrorMessage = “Largura obrigatória.”)] [Display(Name = “Formato Aberto”)] public decimal SizeOpenedWidth { get; set; } 自定义属性: public class PositiveDecimalAttribute : RegularExpressionAttribute { public PositiveDecimalAttribute() : base(“^(?!0?(,0?0)?$)([0-9]{0,3}(,[0-9]{1,2})?)?$”) { } } 集成在酒店: [PositiveDecimal(ErrorMessage = “Largura inválida.”)] [Required(ErrorMessage = “Largura obrigatória.”)] [Display(Name = “Formato Aberto”)] public decimal SizeOpenedWidth { get; […]

正则表达式,用于过滤OpenFileDialog中的文件

我想知道如何基于正则表达式在打开文件对话框(winforms)中过滤文件。 文件具有相同的扩展名(.xml)。 大文件被分成几个同名的文件,只能用_1分隔…我们只想显示没有_1的文件(第一个数据文件) 打开文件对话框有一个属性filter,但我不知道如何在我们的文件名格式中指定它,因此正则表达式。 谢谢,尼基