正则表达式检查字符串的第二个字母
本文关键字:第二个 检查 字符串 正则表达式 | 更新日期: 2023-09-27 17:51:14
我有一个有趣的小任务。如果:,我需要将变量设置为true
字符串以字母结尾,或者字符串中的第二个数字是"p"或"r"。
到目前为止,我有
var endingIsLetter = Regex.(myString.length - 1) ??? magic here.
有什么帮助吗?我的regex好友在一台死笔记本电脑上。
EDIT--不需要REGEX。我只是觉得这将是最简单的方法来完成这件事。欢迎任何例子。
为什么要使用Regex?
var flag = char.IsLetter(s[s.Length - 1]) ||
s[1] == 'p' ||
s[1] == 'r';
必须使用正则表达式吗?还是这是可选的?因为没有正则表达式的代码实际上可能会更快。:(
匹配字符串中的第二个字符:^.[pr]
匹配字符串中的最后一个字符:[a-z]$
组合:^.[pr]|[a-z]$
^
匹配字符串的开头$
匹配字符串的末尾.
匹配任何字符(换行符除外,具体取决于您的设置([...]
提供了一个选择"任意这些",您也可以在其中定义范围- CCD_ 8表示从范围CCD_ 9到CCD_。请注意,这不包括诸如元音变音符之类的东西
请注意,上面的正则表达式希望不区分大小写的匹配能够正常工作(否则也必须添加大写字符(:^.[PRpr]|[A-Za-z]$
为了快速预览正则表达式(以防我不确定(,我更喜欢RegexHeroTester。
回想一下,.
表示单个字符,^
是字符串开头的锚点,$
是字符串结尾的锚点,而[pr]
是方括号之间列表中的任何单个字符。
^.[pr]
表示"第二个字母是p
或r
。
[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
在ideone上演示。
var match = Regex.Matches( @"'w(p|r)+*'w", "Eppressio9n" )
啊,我突然这么做了,因为我现在必须去上班。
我忘了Regex.Matches返回了什么,你所要做的就是检查是否有从Regex.MMatches.返回的东西
希望这能帮助