提问人:shabby 提问时间:3/2/2009 最后编辑:shabby 更新时间:1/13/2014 访问量:2987
正则表达式 - 仅当字符串包含任何字母字符时才匹配字符串
Regex - Match a string only when it contains any alphabetic characters
问:
示例字符串
785*()&!~`a
##$%$~2343
455frt&*&*
我想捕获第一个和第三个,但不是第二个,因为它不包含任何字母字符,请帮忙
答:
3赞
Guido Domenici
3/2/2009
#1
这是一种可能的方法:
.*[a-zA-Z]+
评论
0赞
Lieven Keersmaekers
3/2/2009
@Guido,它不能完全捕获 455frt&*&*。
0赞
Lieven Keersmaekers
3/2/2009
@Shabby,如果将 .* 添加到正则表达式中,则会捕获第一个和第三个实例。然后正则表达式将变为“.*[a-zA-Z]+.*”
5赞
Daren Thomas
3/2/2009
#2
事实上,我认为可能足以匹配你的琴弦。[a-zA-Z]
要捕获整个内容,请尝试:^.*[a-zA-Z].*$
评论
0赞
VonC
3/2/2009
我同意(不需要我的展望)。当心 “dotall” 模式:您不希望 '.' 包含 \r\n
0赞
overslacked
3/2/2009
#3
这是我最喜欢的正则表达式测试网站:Javascript 正则表达式测试器和备忘单
2赞
Renaud Bompuis
3/2/2009
#4
你也许应该澄清一下你所说的“catpuring”是什么意思:你想要整个字符串的ascii位吗?
此外,您没有说它是否应该只匹配普通的罗马字母(A 到 Z),或者它是否也应该匹配 Unicode 字符以匹配其他语言中的字符串。
如果你只需要测试你的字符串,在 C# 中,你可以做:
bool matching = Regex.IsMatch(myString, "[a-zA-Z]");
您不需要任何其他东西,因为字符串中任何位置只有一个字母会匹配(根据您的定义)。myString
0赞
Rafał Rutkowski
1/13/2014
#5
如果要匹配所有字母(包括非 ASCII 字母),请使用 代替 。请参阅 Unicode 类别。p{L}
[a-zA-Z]
上一个:无法计算 Vim 中的匹配项数
下一个:PHP/mysql数组搜索算法
评论