如何在Java中的数组String的索引上使用正则表达式

时间:2017-05-26 17:30:44

标签: java regex

我基本上试图为文本找到正则表达式" TC XX"其中XX可以是任何两位数字。我的代码是:

boolean b = DocArray[RTArrayIndex].matches("/TC \\d{2}/");

其中DocArray - 一个字符串数组,基本上是从\t

分隔的另一个字符串派生的

RTArrayIndex - DocArray数组的当前索引。

正则表达式 - /TC \\d{2}/

当前索引处的字符串值是" TC 10",但仍然是" b"的值。我得到的是假的。

数组的另一个索引包含字符串,"参考TC 10和#34的日志;也是," b"是假的。

2 个答案:

答案 0 :(得分:0)

在正则表达式的开头和结尾删除斜杠:

TC \\d{2}

这适用于您的第一个例子。如果你想要所有包含TC 10的字符串,你需要在开头和结尾添加一些部分,比如。*(意思是'任何')

最后的正则表达式应为:

.*TC \\d{2}.*

答案 1 :(得分:0)

你有一些问题。首先,你的正则表达式包含一些它试图匹配的“/”字符。如果你删除这两个,你会有一个稍微好一点的正则表达式。

boolean b = DocArray[RTArrayIndex].matches("TC \\d{2}");

上面的正则表达式应该评估你的第一个例子,但不是你的第二个例子。您需要考虑前导和尾随字符。您可以使用“。”符号执行此操作。 “”是任何角色的占位符,“”表示可以看到任意次数。如果在模式的开头和结尾添加“。*”,则包含子字符串“TC \ d \ d”的任何字符串都将与正则表达式匹配。

boolean b = DocArray[RTArrayIndex].matches(".*TC \\d{2}.*");