我需要从字符串中过滤字母和非字母数字字符,使其成为整数。
正则表达式字符串
之间有什么区别\w
和
\w*
答案 0 :(得分:1)
\w
匹配任何字母数字字符(字符),包括下划线([a-zA-Z0-9 _]的缩写)。
相当于[A-Za-z0-9_]。
例如,/ \ w /匹配“apple”中的“a”,“$ 5.28”中的“5”和“3D”中的“3”。
<强> *
强>
重复前一项零次或多次。贪婪,因此在尝试使用前一项目的匹配较少的排列之前,将匹配尽可能多的项目,直到前一项目根本不匹配为止。
答案 1 :(得分:1)
\w
代码匹配单个字母数字字符,例如集合[0-9A-Za-z_]
。
*
量词与{0,}
量词相同,它会重复零次或多次。
在量词之后加上一个问号使它变得懒惰,即它尽可能少地匹配字符而不是尽可能多的字符。
因此,\w*?
懒惰地匹配零个或多个字母数字字符。
如果要过滤掉不能出现在数字中的字符,为什么不使用负数?这将匹配任何不是减号或数字的字符:
[^\-\d]