带有正则表达式的子串字边界

Substring word boundaries with regex

我 99% 的人都使用正则表达式来查找单词,但不是作为子字符串出现的任何迭代。

ie 正在寻找 jamJAM 但不是 Pajama 或 floro果酱

这是我的 so far:

\bjam\s?\d?\b

它适用于我可能遇到的所有组合,但我希望它也能在不带空格的情况下对同一个字符串进行多次迭代

jamjamjamjam

是否可以将其添加到正则表达式中?

您可以尝试这样的操作:

\b(?:jam|JAM)+\b

https://regex101.com/r/C05fsI/4

您可以交替使用此正则表达式:

~\b(?:(?:jam)+|jam\h*\d*)\b~i

RegEx Demo

正则表达式详细信息:

  • \b: 字边界
  • (?:(?:jam)+|jam\h*\d*):匹配 1+ 个相邻的 jam 字符串或 jam 后跟 0+ 个空格和 0+ 个数字
  • \b: 字边界
  • i: 忽略大小写模式