微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

排除“ |”来自正则表达式 正则表达式解释更新

如何解决排除“ |”来自正则表达式 正则表达式解释更新

我正在尝试排除“ |”从youtube标签列表中。

enter image description here

到目前为止,我可以正则表达式选择所有可爱的标签,例如下面的字符串

cute|"cute nail art"|"cute"|"cute"|"fcute"

我能够突出显示“可爱”和可爱|究竟。问题是“ |”。我如何摆脱它?

我的正则表达式查询是这个("\bcute\b")|(\bcute\b[^\s])

我的预期结果是突出可爱和“可爱”。

任何提示将不胜感激,感谢您的阅读。

解决方法

假设输入是一串由|连接的标记字符串,并且某些标记括在引号中,并且您希望以某种方式标识和标记某个标记,无论其原样还是带引号,您都可以使用正则表达式看起来像这样:

(?<=\||^)(cute|"cute")(?=\||$)

在此处进行操作:https://regex101.com/r/acjM8R/3

正则表达式解释

(?<=        # start a positive lookbehind assertion
  ^         # match the beginning of the string
  |         # OR
  \|        # match the character '|' literally (it has a special meaning when not escaped)
)           # end of the lookbehind assertion
(           # start a capturing group; it is also used to group the alternatives
  cute      # match the word 'cute' (the tag) as is
  |         # OR
  "cute"    # match the word "cute" (the tag) when it is quoted
)           # end of the group
(?=         # start a positive lookahead assertion
  \|        # match the character '|' literally (it has a special meaning when not escaped)
  |         # OR
  $         # match the end of the string
)           # end of the lookahead assertion

片段^|\|与字符串(^的开头或字符|(分隔符)匹配。类似地,片段\||$|(分隔符)或字符串的结尾匹配。

肯定断言是对实际上不消耗任何字符的当前匹配点之前((?<= ... ))或之后((?= ... ))上字符的测试。

总而言之,上面的正则表达式匹配cute"cute",但仅当它被定界符|或字符串边界包围时。

更新

(cute|"cute")的另一种方式是(("?)cute\2)

片段("?)捕获可选的(?)引号(")。其后是实际标签。片段\2的意思是“与第二个捕获组相同” ,在这种情况下,它是与("?)匹配的文本。

这意味着,如果("?)与某项(引号)匹配,则\2也必须与引号匹配。如果("?)匹配一个空字符串(|cute之间没有引号),则\2也匹配一个空字符串。

看到它在这里工作:https://regex101.com/r/acjM8R/4/

,

我假设您要使用的是文字|。因此,您需要像\|那样对其进行转义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?