tru*_*ype 5 c# regex string special-characters
我最近阅读了很多关于正则表达式的非常有趣的内容.特别是关于创建自己的正则表达式边界
有一点我认为我没见过(我100%已经完成,但我没有注意到任何例子)是如何排除正则表达式匹配,如果它前面有'特殊字符',如 & !%$#.例如:
如果我使用正则表达式(注意这是来自C#)
([A-Z]{2,}\\b)
Run Code Online (Sandbox Code Playgroud)
它将匹配任何长度为两个或更多的大写字母,并使用\b边界确保两个大写字母不以任何其他字母开头或结尾.但是在这里,我不确定这会如何表现:
AA -Match
sAB - 没有匹配
AC的-不匹配
!AD -Match
AF!-比赛
我想知道如何只选择两个或多个不带小写字母/数字/符号的大写字母,或者后跟小写字母/数字/特殊字符.
我已经看到人们使用空格,所以要确保字符串以空格开头或以空格结尾,但如果它在行的开头或结尾处不起作用.
所以,我从上面的例子中寻找的输出将是:
AA -Match
sAB - 没有匹配
AC的-不匹配
!AD-没有比赛
AF! - 没有比赛
任何帮助表示赞赏.
您只需要使用后视和前视:
(?<![a-z\d!@#$%^&*()])[A-Z]{2,}(?![a-z\d!@#$%^&*()])
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
向后查找(?<![a-z\d!@#$%^&*()])可确保不存在您定义的小写字母 ( [a-z])、数字 ( \d) 或特殊字符。如果有,则匹配失败,不返回任何内容。
如果在全大写字母后找到相同的字符,则先行(?![a-z\d!@#$%^&*()])查找也会失败。
请在此处查看有关Lookahead 和 Lookbehind 零长度断言的更多详细信息。
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |