Java正则表达式,用于查找前后没有字母数字字符的特定子字符串
不太熟悉正则表达式,因此如果可能,可以使用一些指向正确方向的指针 我有一些可能的字符串值,可以是如下所示: “88976756 ABC 33ddf33a24” “89999ABC 3HHJ33” “7ffhh7AB C78788sd” 我需要的是找出这些字符串中是否存在值ABC,但其前面或后面没有字母数字字符 在上面的例子中,只有第一个应该返回ABC。 第二个例子前面是一个数字,第三个中间有一个空格。 如果有人知道这样做的方法,或者有关于最佳方法的文档,我将不胜感激 编辑: 上面的字符串可能有点简单。下面还有一些例子 “67676/‘ABC’7866cc” 应该找到ABC,因为在它之前或之后没有字母数字字符 “88xx#'\A2C” A2C应该被找到,因为之前或之后没有字母数字字符 “88xx#A2C&&88” A2C应该被找到,因为之前或之后没有字母数字字符 “88xxA2C&&88” 不应找到A2C,因为它前面有字母数字字符Java正则表达式,用于查找前后没有字母数字字符的特定子字符串,java,regex,pattern-matching,non-alphanumeric,Java,Regex,Pattern Matching,Non Alphanumeric,不太熟悉正则表达式,因此如果可能,可以使用一些指向正确方向的指针 我有一些可能的字符串值,可以是如下所示: “88976756 ABC 33ddf33a24” “89999ABC 3HHJ33” “7ffhh7AB C78788sd” 我需要的是找出这些字符串中是否存在值ABC,但其前面或后面没有字母数字字符 在上面的例子中,只有第一个应该返回ABC。 第二个例子前面是一个数字,第三个中间有一个空格。 如果有人知道这样做的方法,或者有关于最佳方法的文档,我将不胜感激 编辑: 上面的字符串可能有点
谢谢使用单词边界匹配器
\b
你的正则表达式可以简单到
\bABC\b
假设我没有ABC,而是A23。单词边界能否匹配字母数字字符串?此外,运行正则表达式的完整字符串可以有任何字符组合,上面发布的可能有点过于简化了。我将更新以包含更多示例。实际上,更新了上面可能的示例,以澄清您显示的所有案例都包含在单词边界中。唯一的问题可能是
\u ABC\u
。如果不匹配,您需要使用一些自定义边界,例如(?)哦,请将您的代码格式化为代码。