Javascript regex删除字符串开头和结尾的某些字符
假设我有这样一个字符串:Javascript regex删除字符串开头和结尾的某些字符,javascript,regex,string,replace,Javascript,Regex,String,Replace,假设我有这样一个字符串: ...hello world.bye 但是我想去掉前三个点,用替换。再见 所以输出应该是 hello world! 仅当两个条件都适用时(开始时为..,结束时为.bye),它才应匹配 我尝试使用js替换方法。你能帮忙吗?谢谢您的正则表达式将是 const rx=/\.\.\([\s\s]*?)\.再见/g const out='\n\n obar…你好,世界。再见\n obar…好的。再见\n…行\n断开。再见\n。替换(rx,`1!`) console.log(
...hello world.bye
但是我想去掉前三个点,用替换。再见代码>
所以输出应该是
hello world!
仅当两个条件都适用时(开始时为..
,结束时为.bye
),它才应匹配
我尝试使用js替换方法。你能帮忙吗?谢谢您的正则表达式将是
const rx=/\.\.\([\s\s]*?)\.再见/g
const out='\n\n obar…你好,世界。再见\n obar…好的。再见\n…行\n断开。再见\n。替换(rx,`1!`)
console.log(out)
首先匹配点,捕获并重复任何字符,直到到达.bye
,然后匹配.bye
。然后,您可以替换为第一个捕获的组,加上感叹号:
conststr='…你好,世界,再见';
log(str.replace(/\.\.\.(.*)\.bye/,'$1!'))代码>执行此操作实际上不需要正则表达式。虽然有点不雅观,但以下功能应该可以正常工作(显然,可以在应用程序上下文中调用任何有意义的函数):
(如果我在索引方面犯了任何愚蠢的错误,我深表歉意,但基本思想应该是显而易见的。)
至少对我来说,这比正则表达式更容易推理。当然,如果您需要处理更复杂的情况,您可能会达到正则表达式最好的程度,但我个人不会为一个简单的用例(如OP中提到的用例)而烦恼。一个可以说更简单的解决方案:
const str = '...hello world.bye'
const newStr = /...(.+)\.bye/.exec(str)
const formatted = newStr ? newStr[1] + '!' : str
console.log(formatted)
如果字符串与正则表达式不匹配,它将返回字符串。很抱歉,我的问题不够清楚。这对我不起作用,因为我的字符串包含多行,匹配可以发生在字符串中的任何位置,例如:blah blah blah blah…第一次匹配。bye blah blah blah blah blah blah blah blah blah…第二次匹配。bye blah blah blah blah blah blah blah blah blah blah
const str = '...hello world.bye'
const newStr = /...(.+)\.bye/.exec(str)
const formatted = newStr ? newStr[1] + '!' : str
console.log(formatted)