正则表达式字母,数字,破折号和下划线

Geo*_*ton 52 regex

我不知道如何实现这种匹配表达.目前我正在使用,

([A-Za-z0-9-]+)
Run Code Online (Sandbox Code Playgroud)

...匹配字母和数字.我还想在同一个表达式中匹配破折号和下划线.谁知道怎么样?

我希望能够匹配product_nameproduct-name

Joh*_*ler 91

只是逃避破折号以防止它们被解释(我不认为下划线需要逃脱,但它不会伤害).你没有说你正在使用哪个正则表达式.

([A-Za-z0-9\-\_]+)
Run Code Online (Sandbox Code Playgroud)

  • @George:这个正则表达式已经与句点不匹配. (4认同)
  • “但它不会造成伤害” --- 是的,如果你在 HTML5 中使用它,它会抛出一个“`无效的正则表达式:/([A-Za-z0-9\-\_]+) /:无效转义`”错误!。请使用 `([A-Za-z0-9\-_]+)` 来代替!:) (3认同)

wax*_*ing 21

你的表达式应该已经匹配破折号,因为最后的 - 不会被解释为范围运算符(因为范围没有结束).要添加下划线,请尝试:

([A-Za-z0-9_-]+)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 12

根据您的正则表达式变体,您可以简单地执行以下操作:

([\w-]+)
Run Code Online (Sandbox Code Playgroud)

此外,您可能不需要括号,除非这是更大表达式的一部分.