如何删除两个特定字符之间的子字符串

2023-11-27

所以我有一个字符串:

"this is the beginning, this is what i want to remove/ and this is the end"

如何使用 Javascript 来定位逗号和正斜杠之间的字符串? (我还想删除逗号和斜杠)


string = string.replace( /,.*?\//, '' );

In the regexp, ,与自身相匹配,.*?匹配任何字符序列(首选最短匹配,因为?修饰符)和\/匹配斜杠。 (斜杠需要用反斜杠转义,因为它也用作正则表达式分隔符。不幸的是,JavaScript 不支持替代的正则表达式文字分隔符,因此您只需处理牙签倾斜综合征.)

请注意,上面的代码删除了所有内容first逗号到first字符串中的斜杠后面。根据您希望在存在多个逗号或斜杠时发生的情况,有多种方法可以修改正则表达式的行为。例如:

  • .replace( /,.*\//, '' )删除所有内容first逗号到last slash;
  • .replace( /^(.*),.*?\//, '$1' )删除所有内容last逗号后跟斜杠,直到下一个斜杠;
  • .replace( /^(.*),.*\//, '$1' )删除所有内容last逗号后跟斜杠,直到last字符串中的斜线;
  • .replace( /,[^\/]*\//, '' )与原始正则表达式相同,即删除从第一个逗号到后面第一个斜杠的所有内容(即使中间还有其他逗号);
  • .replace( /,[^,\/]*\//, '' )删除以逗号开头并以斜杠结尾的第一个子字符串,并且之间不包含任何逗号或斜杠;
  • .replace( /^(.*),[^,\/]*\//, '$1' )删除last以逗号开头、以斜杠结尾且中间没有逗号或斜杠的子字符串;和
  • .replace( /^,[^,\/]*\//g, '' )删除all以逗号开头、以斜杠结尾且中间没有逗号或斜杠的子字符串。

另请注意,由于正则表达式语法的历史怪癖,.元字符实际上会匹配任何字符except换行符 ("\n")。大多数正则表达式实现都提供了一些方法来关闭这个怪癖并使得.确实匹配所有字符,但 JavaScript 由于某种原因不能匹配。如果您的字符串可能包含换行符,您应该替换所有出现的.在上面的正则表达式中,有一些解决方法例如[\s\S](适用于大多数 PCRE 风格的正则表达式引擎)或[^](更短,但特定于 JavaScript 正则表达式风格)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除两个特定字符之间的子字符串 的相关文章

随机推荐