我有以下字符串:
"bar foo test-line drop-line"
我需要替换以任何内容开头并以“-line”结尾的单词。
基本上有:
"bar foo new_word new_word"
我尝试过:
string.replace(/\.-line$/g,'new_word')
但它不起作用。
最佳答案
尝试将其作为正则表达式:
/\S+-line(?![-\w])/
单词 anchor 在这里不合适,因为破折号不被视为单词的一部分,因此 /\S+-line\b/
会错误地匹配 text-with-line-not-待替换
。因此就有了前瞻结构。
当然,根据您的用例,\S
可能看起来有点粗糙。如果您的单词确实仅由字母和破折号等组成,那么您可以使用 normal* (special normal*)*
模式:
/[a-z]+(-[a-z]+)*-line(?![-\w])/i
(正常:[a-z]
,特殊:-
)
(编辑:更改了前瞻结构,感谢@thg435)
关于javascript - 正则表达式匹配特定字符串开头结尾的任意字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041357/