gpt4 book ai didi

java - 什么是 Java 中的单词边界元字符的等价物?

转载 作者:行者123 更新时间:2023-11-29 03:19:27 24 4
gpt4 key购买 nike

我现在正在学习正则表达式,并且对 \b 或单词边界已定义感到困惑。

我知道 \d 等于 [0-9]\D 等于 [^0- 9],\w 等于 [a-zA-Z0-9]\W 等于 [^a-zA- Z0-9].

我已经尝试了很多不同的组合来制作 \b 的等价物,但没有成功。

我的问题是,我们可以制作等同于 \b 的东西吗?请提供一个简单的解释。

最佳答案

您有多种选择:

选项 1:同时使用正面和负面环视

(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))

参见 demo .

选项 2:仅使用正面环视

(?:(?<=\W|^)(?=\w)|(?<=\w)(?=\W|$))

参见 demo .

测试以下字符是否为 \W(例如)是不够的,正如另一个答案建议使用 (?=\W),因为 \W 必须匹配一个字符,但是 \b 工作在字符串的开头或结尾,没有要匹配的字符。为了修复它,选项 2 中的正则表达式引入了字符串断言 ^$

开头和结尾的交替

关于java - 什么是 Java 中的单词边界元字符的等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587090/

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