Java正则表达式在它之前或之后找到没有字母数字字符的特定子字符串

时间:2017-03-13 09:39:27

标签: java regex pattern-matching non-alphanumeric

对regex不太熟悉,如果可能的话,可以在正确的方向上使用一些指针。

我有一些可能的字符串值,可能类似于以下内容:

" 88976756 ABC 33ddf33a24"

" 89999ABC 3hhhj33"

" 7ffhh7AB C78788sd"

我需要的是找出这些字符串中是否存在值ABC,但字母数字字符前面或后面是不是。

在上面的例子中,只有第一个应该返回ABC。 第二个例子前面是一个数字,第三个例子中间有一个空格。

如果有人知道如何做到这一点或者有一些关于最佳方式的文档,我会很感激。

修改: 上面的字符串可能有点过分了。下面是一些进一步的例子

" 67676 /' ABC' 7866cc"

应该找到ABC,因为它之前或之后没有字母数字字符

"#88XX' \ A2C"

应该找到A2C,因为

之前或之后没有字母数字字符

" 88xx#A2C&&& 88"

应该找到A2C,因为

之前或之后没有字母数字字符

"&88xxA2C放大器;&安培;&安培; 88"

不应该找到A2C,因为之前有一个字母数字字符

由于

1 个答案:

答案 0 :(得分:1)

使用单词boundary matcher \b

你的正则表达式可以像

一样简单
\bABC\b