【问题标题】:Look for overlapping substring on 2 strings with Regex in Javascript [closed]在 Javascript 中使用正则表达式在 2 个字符串上查找重叠子字符串 [关闭]
【发布时间】:2019-12-13 03:47:38
【问题描述】:

我想在 Javascript 中使用 Regex 查找两个字符串之间的所有重叠子字符串。

例如,我有一个黑名单字为字符串"sexuality|violence|evil"。我想检查这个词是否存在于其他字符串中。例如:字符串"He is person who have sexuality, violence and evil"

我想构建一个正则表达式来查找上述字符串中的 sexualityviolenceevil 三个词。

感谢您的帮助

【问题讨论】:

  • 您使用的是什么环境/语言?
  • 你只是想检测它们中的任何一个是否存在于一个字符串中,还是你也想要它们的所有位置?我可能只使用一组正则表达式,每个黑名单单词一个。
  • 您需要分享您尝试解决问题的尝试,以及您在此过程中可能遇到的任何问题。
  • 我正在使用 javascript @NickParsons
  • @orchid 我只需要检测它们是否存在于字符串中而不需要它们的位置

标签: javascript regex string substring


【解决方案1】:

如果使用正向前瞻,这样的事情会怎样?

(?=.*(?P<sexuality>sexuality))?(?=.*(?P<violence>violence))?(?=.*(?P<evil>evil))?.*

https://regex101.com/r/5UIBB9/12.

请注意,它需要 887 个步骤,因此在无序时捕获单词是一种非常低效的方法,但它应该可以解决您的问题。

【讨论】:

  • 我怎样才能用 unicode 字符串做同样的事情,我已经用 unicode 文本(例如越南语)尝试了这个正则表达式,但它得到了关于正则表达式的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-02
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多