C# 正则表达式.筛选字母和非字母数字字符
我需要从字符串中过滤字母和非字母数字字符,使其成为整数 正则表达式字符串之间有什么区别C# 正则表达式.筛选字母和非字母数字字符,c#,regex,C#,Regex,我需要从字符串中过滤字母和非字母数字字符,使其成为整数 正则表达式字符串之间有什么区别 \w 及 ?\w匹配任何字母数字字符(单词字符),包括下划线(缩写为[a-zA-Z0-9]) 相当于[A-Za-z0-9] 例如,/\w/匹配“apple”中的“a”,“5.28美元”中的“5”,以及“3D”中的“3” * 将上一项重复零次或多次。贪婪,因此在尝试与前一项的匹配较少的置换之前,将尽可能多的项匹配,直到前一项完全不匹配。代码与单个字母数字字符匹配,如set[0-9A-Za-z] *量词与{0,
\w
及
?
\w
匹配任何字母数字字符(单词字符),包括下划线(缩写为[a-zA-Z0-9])
相当于[A-Za-z0-9]
例如,/\w/匹配“apple”中的“a”,“5.28美元”中的“5”,以及“3D”中的“3”
*
将上一项重复零次或多次。贪婪,因此在尝试与前一项的匹配较少的置换之前,将尽可能多的项匹配,直到前一项完全不匹配。代码与单个字母数字字符匹配,如set
[0-9A-Za-z]
*
量词与{0,}
量词相同,它将匹配重复零次或多次
在量词后面加问号会使它变懒,也就是说,它匹配尽可能少的字符,而不是尽可能多的字符
因此,\w*?
惰性地匹配零个或多个字母数字字符
如果您想过滤掉不能在数字中的字符,为什么不使用负数集呢?这将匹配任何不是减号或数字的字符:
[^\-\d]
我认为OP使用的“?”是一个问号,而不是正则表达式的一部分。请看我的编辑。@phoenix:问题似乎是关于规则的贪婪的
*
,它后面的“?”表示句子标点符号。既然你的定义是贪婪之星,我就把你答案中的“懒惰之星”改成了“贪婪之星”。希望你不介意。
[^\-\d]