c# - 正则表达式条件不在最小下划线处返回 false

标签 c# regex string alphanumeric

如果 RegEx 匹配,我将使用此 RegEx

 if (Regex.IsMatch(_familyname, @"(\S*_){3}\S"))

我试图确保通过测试的单词至少有这个 Word1_Word2_WORD3-maybe_Word4(注意单词中的连字符或空格并不重要) RegEx (\S*_){3}\S 也允许带有两个下划线的单词通过。 是否只有三个下划线的 RegEx 匹配并且这些下划线之间允许任何单词/字符/符号?哦,它也永远不会结束或以下划线开头。此外,如果测试第三个字母数字字符串全部为大写字母会很棒。实际上,我使用字符串拆分实现了所有这些。但是我读到 RegEx 可以更快吗?同时使用 .NET 4.5.2

最佳答案

你的表情很“贪婪”试试这个:

if (Regex.IsMatch(familyname, @"(\S*?){3}\S"))

更多信息见: http://www.regular-expressions.info/possessive.html

关于c# - 正则表达式条件不在最小下划线处返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43959642/

相关文章:

C# 没有从非托管 C++ dll 中捕获未处理的异常

python - 如何使用正则表达式获取字符串及其值

python - 生成的列表由[显然]此代码片段中未说明的空格组成

C++指针函数导致空参数

c# - TestMethod 生成错误 CS0201

c# - WindowsFormsHost 布局问题

c# - 如何重命名 "using Directive"C#

javascript - 多次环顾并忽略内部标签

PHP - 在大写字母前添加下划线

c++ - 从 const char* 到迭代器错误的 "no known conversion"- 另一种方式