示例字符串
785*()&!~`a
##$%$~2343
455frt&*&*
我想捕获第一个和第三个但不是第二个,因为它不包含任何字母字符请帮助
事实上,我认为[a-zA-Z]
可能足以匹配您的字符串。
要捕获整个事物,请尝试:^.*[a-zA-Z].*$
这是一种可能的方法:
.*[a-zA-Z]+
您也许应该澄清一下“catpuring”的含义:您是否想要整个字符串仅包含 ascii 位?
此外,您不会说它是否应该只匹配纯罗马字母(A 到 Z),或者它是否还应该匹配 Unicode 字符以匹配其他语言中的字符串。
如果你只需要测试你的字符串,在 C# 中你会这样做:
bool matching = Regex.IsMatch(myString, "[a-zA-Z]");
您不需要任何其他内容,因为myString
字符串中的任何地方只有一个字母会匹配(根据您的定义)。
这是我最喜欢的 RegEx 测试网站:Javascript Regexp Tester and Cheat Sheet
如果要匹配所有字母(包括非 ascii 字母),请p{L}
使用[a-zA-Z]
. 请参阅Unicode 类别。