gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:38 26 4
gpt4 key购买 nike

所以我有一个字符串:

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

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

最佳答案

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

regexp , , 匹配自身,.*? 匹配任何字符序列(由于 ? 修饰符,首选最短匹配)和 \/ 匹配一个斜杠。 (斜杠需要用反斜杠转义,因为它也用作正则表达式定界符。不幸的是,JavaScript 不支持替代的正则表达式文字定界符,因此您只需要处理 leaning toothpick syndrome 即可。)

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

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

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

关于javascript - 如何删除两个特定字符之间的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com