Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式检查字符串的第二个字母_C#_Regex - Fatal编程技术网

C# 正则表达式检查字符串的第二个字母

C# 正则表达式检查字符串的第二个字母,c#,regex,C#,Regex,我有一个有趣的小任务。我需要将变量设置为true,如果: 字符串以字母结尾,或者字符串中的第二个数字是“p”或“r” 到目前为止,我已经 var endingIsLetter = Regex.(myString.length - 1) ??? magic here. 有什么帮助吗?我的regex伙伴在一台死机上 编辑——不需要正则表达式。我只是觉得这是最简单的方法。欢迎使用任何示例。为什么要使用正则表达式 var flag = char.IsLetter(s[s.Length - 1]) ||

我有一个有趣的小任务。我需要将变量设置为true,如果:

字符串以字母结尾,或者字符串中的第二个数字是“p”或“r”

到目前为止,我已经

var endingIsLetter = Regex.(myString.length - 1) ??? magic here.
有什么帮助吗?我的regex伙伴在一台死机上


编辑——不需要正则表达式。我只是觉得这是最简单的方法。欢迎使用任何示例。

为什么要使用正则表达式

var flag = char.IsLetter(s[s.Length - 1]) || 
           s[1] == 'p' || 
           s[1] == 'r';

回想一下,
表示单个字符,
^
是字符串开头的锚点,
$
是字符串结尾的锚点,
[pr]
是方括号之间列表中的任何单个字符

^.[pr]
表示“第二个字母是
p
r

[A-Za-z]$
表示“最后一个字符是字母”


.

您必须使用正则表达式?或者这是可选的?因为没有正则表达式的代码实际上可能更快。:)

要匹配字符串中的第二个字符:
^.[pr]
要匹配字符串中的最后一个字符:
[a-z]$

组合:
^.[pr]|[a-z]$

  • ^
    匹配字符串的开头
  • $
    匹配字符串的结尾
  • 匹配任何字符(断行除外,具体取决于您的设置)
  • […]
    提供了一个选择“其中任何一个”,您也可以在其中定义范围
  • [a-z]
    表示从
    a
    z
    范围内的任何字符。请注意,这不包括诸如umlauts之类的内容
请注意,上面的正则表达式要求不区分大小写的匹配正常工作(否则还必须添加大写字符):
^.[PRpr]|[A-Za-z]$

要快速预览正则表达式(以防我不确定),我更喜欢

啊,我这么做有点出乎意料,因为我现在得去上班了

我忘了Regex.Matches返回什么,您所要做的就是检查是否有从Regex.Matches返回的内容


希望这能有所帮助

为什么要使用正则表达式来处理如此简单的事情?您可能应该使用
|
^.[pr]|[a-zA-Z]$
将其放在一个正则表达式中
Console.WriteLine(Regex.IsMatch("abc123", "^.[pr]|[A-Za-z]$")); // False
Console.WriteLine(Regex.IsMatch("abc12x", "^.[pr]|[A-Za-z]$")); // True
Console.WriteLine(Regex.IsMatch("apc123", "^.[pr]|[A-Za-z]$")); // True
Console.WriteLine(Regex.IsMatch("arc123", "^.[pr]|[A-Za-z]$")); // True
Console.WriteLine(Regex.IsMatch("", "^.[pr]|[A-Za-z]$"));       // False
var match = Regex.Matches( @"\w(p|r)+*\w", "Eppressio9n" )