Tag: 正则表达式

C#System.RegEx匹配LF时不应该

以下返回true Regex.IsMatch(“FooBar\n”, “^([AZ]([az][AZ]?)+)$”); 那也是 Regex.IsMatch(“FooBar\n”, “^[AZ]([az][AZ]?)+$”); RegEx默认处于SingleLine模式,因此$不应与\ n匹配。 \ n不是允许的字符。 这是为了匹配单个ASCII PascalCaseWord(是的,它将匹配一个尾随的Cap) 不适用于RegexOptions.Multiline |的任何组合 RegexOptions.Singleline 我究竟做错了什么?

为什么Regex IsMatch()会挂起

我有一个exressression来validation电子邮件地址: string REGEX_EMAIL = @”^\w+([\.\!\#\$\%\&\’\*\+\-\/\=\?\^\`\{\¦\}\~]*\w+)*@\w+([\.\-]\w+)*\.\w+([\.\-]\w+)*$”; 如果地址正确,IsMatch()方法会快速显示真实结果。 但是如果地址字符串很长且错误,则此方法会挂起。 我该怎么做才能提高这种方法的速度? 谢谢。

在C#中,如何使用Regex.Replace添加前导零(如果可能)?

我想在字符串中的数字中添加一定数量的前导零。 例如: 输入:“第1页”,输出:“第001页”输入:“第12页”,输出:“第012页”输入:“第123页”,输出:“第123页” 使用Regex.Replace做到这一点的最佳方法是什么? 此刻我用它但结果是001,0012,00123。 string sInput = “page 1″; sInput = Regex.Replace(sInput,@”\d+”,@”00$&”);

在.NET中使用正则表达式从字符串中提取标记

我很好奇是否可以使用正则表达式。 我想从类似于以下字符串的字符串中提取标记: Select a [COLOR] and a [SIZE]. 好的,很简单 – 我可以使用(\[[AZ]+\]) 但是,我还想在令牌之间提取文本。 基本上,我希望上面的匹配组是: “Select a ” “[COLOR]” ” and a ” “[SIZE]” “.” 对此最好的方法是什么? 如果有办法用RegEx做到这一点,那就太好了。 否则,我猜我必须提取标记,然后手动循环遍历MatchCollection并根据每个匹配的索引和长度解析子字符串。 请注意我需要保留字符串和标记的顺序。 有没有更好的算法来进行这种字符串解析?

Regex vs Tryparse性能最佳

在我的ASP.net项目中,我需要为用户输入validation一些基本数据类型。 数据类型类似于数字,小数,日期等。 在性能方面我应该采取的最佳方法是什么? 它是通过Regex.IsMatch()还是通过TryParse() ? 提前致谢。

使用C#.Net可以被60整除的任何数字的正则表达式?

我需要对以秒为单位的输入时间间隔应用validation。 现在我并不擅长正则表达式。 所以任何身体都可以帮助制作一个正则表达式,可以测试一个数字是否可被60整除。 我想知道我是否可以用来测试一个检查该数字是否可被10整除,然后检查它是否可以被6整除。 对于可被10整除的数字,这里[\ d * 0]是我猜的表达式。 如果我错了,请纠正我。 希望有人能解决我的问题。 谢谢

正则表达式在文件夹中查找文件

如何查找所有文件与文件夹中的正则表达式模式匹配? 谢谢

获取与其中的动态数字之间的值

我正在研究一种文本摘要方法,为了测试我的方法我有一个名为doc 2007的基准测试,在这个基准测试中我有很多xml文件,我应该清除那个文件。 例如,我有一个像这样的xml文件: The nature of the proceeding 1 The principal issue in this proceeding is whether the Victorian Arts Centre falls within the category of ‘premises of State Government Departments and Instrumentalities’, for the purposes of provisions in industrial awards relating to rates of payment for persons employed in cleaning those premises. In turn, […]

C#相当于Java Punctuation正则表达式

我希望在C#中找到相当于这个正则表达式的等价物。 Java的: public static final String expression = “[\\s\\p{Punct}]”; {Punct}是Java中的保留字符类,但我不确定如何创建等效表达式,以便.net正则表达式引擎不会barf。

以贪婪的重复回溯平衡组可能会导致失衡?

作为这个问题的一般酿造的例子,我的意图是匹配一些数字,然后是相同数量的b ,再加上一个b 。 检查此代码段中展示的两种模式( 也在ideone.com上 ): var r1 = new Regex(@”(?xn) (? a)+ (? b)+ (?(A)(?!)) b “); var r2 = new Regex(@”(?xn) (? a)+ (? b)+? (?(A)(?!)) b “); Console.WriteLine(r1.Match(“aaabbb”)); // aaabbb Console.WriteLine(r2.Match(“aaabbb”)); // aabbb 请注意,两种模式的匹配存在差异。 r1 ,在平衡组构造上使用贪婪重复,匹配3 a和3 b ,这不是预期的。 r2 ,使用不情愿的重复,给我2 a和3 b ,这是按预期的。 我可以解释的唯一方法是,当(? b)+回溯匹配少一个b ,它会从B堆栈中弹出但不会推回从A堆栈中相应弹出的内容。 因此,即使现在由于回溯而少了一个b匹配, A堆栈仍然是空的。 这是我能解释r1如何匹配aaabbb的唯一方法。 注意使用不情愿的+? 在r2中不会导致此问题。 […]