我基本上试图为文本找到正则表达式" 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"是假的。
答案 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}.*");