Regexp-在逗号分隔的字符串中查找特定字符串 要查找的字符串

Regexp-在逗号分隔的字符串中查找特定字符串 要查找的字符串,regex,Regex,b 测试字符串 b,ffb,x b x,b df,b,x 拙劣的尝试 [\s |,| ^]+-查找空格、逗号或字符串开头 (b)-查找所需字符串 [\s |,|$]+-查找空格、逗号或字符串结尾 笔记 如果b定义了两次,我也希望有一个匹配的字符类中的管道不表示交替,而是表示文字管道字符。插入符号^和任何其他特殊字符(少数情况除外)也是如此。它们将在字符类中失去其含义 您需要(^ |[\s,])b([\s,].$)或只需\bb\b 如果b定义了两次,我也希望有一个匹配项 我假设您正在谈论这样的

b

测试字符串
  • b,ffb,x
  • b
  • x,b
  • df,b,x
  • 拙劣的尝试

  • [\s |,| ^]+
    -查找空格、逗号或字符串开头
  • (b)
    -查找所需字符串
  • [\s |,|$]+
    -查找空格、逗号或字符串结尾
  • 笔记
    如果
    b
    定义了两次,我也希望有一个匹配的字符类中的管道不表示交替,而是表示文字管道字符。插入符号
    ^
    和任何其他特殊字符(少数情况除外)也是如此。它们将在字符类中失去其含义

    您需要
    (^ |[\s,])b([\s,].$)
    或只需
    \bb\b

    如果
    b
    定义了两次,我也希望有一个匹配项

    我假设您正在谈论这样的情况,那么您必须将第二个捕获组更改为正向前瞻。如果您的风格支持它,这将起作用(Python支持):

    为什么尝试失败?:)这很好,但您应该了解,字符类中的
    与文本
    字符匹配,与不再是字符串结束锚的
    $
    相同。字符类匹配字符,而不是字符串中的位置。
    (^|[\s,])b(?=[\s,]|$)