javascript - 正则表达式匹配特定字符串开头结尾的任意字符

标签 javascript regex

我有以下字符串:

"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/

相关文章:

javascript - 在 Angular 中动态传递接口(interface)作为参数

javascript - Angular.js 需要至少一个复选框

c# - 简单的正则表达式替换以保留原始字符串

javascript - 如何在电子邮件验证期间仅更改正则表达式模式的验证消息

javascript - 使用 Bower 安装 AdminLTE

javascript - 如何通过代码/脚本在 Firefox 中加载 PKCS#11 设备?

javascript - 使用 setTimeout 时,node.js 处理流背压

html - 从纯 HTML 中提取数据

java - 删除字符串中的某些字符,Java

python - 对于特殊文本来说,最好的 python 正则表达式是什么?