【发布时间】:2009-03-02 07:48:06
【问题描述】:
示例字符串
785*()&!~`a
##$%$~2343
455frt&*&*
我想捕获第一个和第三个但不是第二个,因为它不包含任何字母字符请帮助
【问题讨论】:
示例字符串
785*()&!~`a
##$%$~2343
455frt&*&*
我想捕获第一个和第三个但不是第二个,因为它不包含任何字母字符请帮助
【问题讨论】:
事实上,我认为[a-zA-Z] 可能足以匹配您的字符串。
要捕获整个内容,请尝试:^.*[a-zA-Z].*$
【讨论】:
这是一种可能的方法:
.*[a-zA-Z]+
【讨论】:
您或许应该澄清一下您所说的“捕获”是什么意思:您想要整个字符串仅包含 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 categories。
【讨论】: