>我有一个以下正则表达式,它基本上得到带有连字符的字符串:
/class="(?=S*[-])([a-zA-Z-]+)/gim
输入字符串为:
<div class="hello-world h-123"></div>
<div class="this-is-cool"></div>
但是,我的问题是在输入字符串中,它只匹配hello-world
但我想使用相同的正则表达式但单独(组(匹配h-123
。基本上,我正在尝试构建一个正则表达式,它基本上可以获取所有包含破折号的字符串。
您的正则表达式指定以class="
开头,并且仅包含字母。将其更改为字母和数字(我使用了包含字母,数字和下划线的w
(,它们之间至少有一个破折号:
const regexp = /w+(-w+)+/gim
const str = `<div class="hello-world h-123"></div>
<div class="this-is-cool"></div>`
const result = str.match(regexp)
console.log(result)
([\w\s]*[-][\w]*(*
这将查找以字母数字字符或空格开头、具有连字符并后跟字母数字字符的任何字符串。 它会多次执行此操作以将第一个和最近的短语之间可能有空格的连字符短语链接在一起。