当前位置: 首页 > 知识库问答 >
问题:

为什么“[”与[a-zA-Z][duplicate]匹配

司寇季
2023-03-14
Regex oRegex = new Regex(@"test[a-zA-z]");
string st = @"this is a test1 and testA and test[abc] another testB and test(xyz) again.";
foreach(Match match in oRegex.Matches(st))
{
     Console.WriteLine(match.Value);
}

输出:

种皮

测试[

测试B

问题:为什么在输出中测试[?字符类[a-zA-Z]应该只匹配字母字符a到z和A到Z。

共有3个答案

宋正真
2023-03-14

你的正则表达式中有一个错别字。<代码>[a-zA-Z] 应为<代码>[a-zA-Z]

字符[位于Az字符之间。

谭仰岳
2023-03-14

Z 是您的情况中的错字.更改此 [a-zA-Z]

Regex oRegex = new Regex(@"test[a-zA-Z]");
长孙诚
2023-03-14

因为[属于ascii范围A-z,所以将char类中存在的A-z更改为A-Z

Regex oRegex = new Regex(@"test[a-zA-Z]");
 类似资料:
  • 描述 (Description) 字符类[a-zA-Z]匹配从a到z或A到Z的任何字符。 例子 (Example) 以下示例显示了字符类匹配的用法。 package com.wenjiangs; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CharacterClassDemo { p

  • 我正在编写一个安全系统,拒绝未经授权的用户访问。 它按预期授予授权用户访问权限,但也允许未经授权的用户进入! 为什么会发生这种情况?我已经明确声明,只有当等于Kevin、Jon或Inbar时,才允许访问。我也尝试过相反的逻辑,,但结果是一样的。 注意:这个问题旨在作为这个非常常见的问题的规范重复目标。还有另一个热门问题如何针对单个值测试多个变量?这有同样的基本问题,但比较目标是相反的。这个问题不应

  • 问题内容: 如果我尝试这样做: 我得到以下输出: 演示:http://codepad.org/ncVuJtJu 这是为什么? 我希望将其作为输出: 我的理解: 但是为什么不输出呢? 问题答案: 所有解释为什么得到2而不是1的答案实际上都是错误的。根据PHP文档,混合并以这种方式是不确定的行为,所以你可以得到1或2切换到不同版本的PHP可能会改变你得到的结果,这将是一样有效。 请参阅示例1,其中显示

  • 问题内容: 我尝试了一些代码,使用XOR在Java中交换两个整数而不使用第三个变量。 这是我尝试的两个交换函数: 这段代码产生的输出是这样的: 我很好奇,为什么这样说: 与这个不同吗? 问题答案: 问题是评估的顺序: 参见JLS第15.26.2节 首先,对左操作数求值以产生一个变量。 如果该评估突然完成,则赋值表达式由于相同的原因而突然完成;右边的操作数不会被评估,并且不会发生赋值。 否则,将保存

  • 描述 (Description) 字符类[az&&[^bc]]匹配除a和z之外的任何字符,b和c除外。 例子 (Example) 以下示例显示了字符类匹配的用法。 package com.wenjiangs; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CharacterClassDemo