所以我是 Java 的新手,在使用正则表达式时遇到了一些麻烦。我正在尝试在字符串中找到带翅膀的注释 (/* */
) 和行尾注释 (//
),这样我就可以沿着它们拆分并放置这些片段在一个数组中。
这是我目前拥有的正则表达式:
stringofstuff.split("[!//.*?\n!]");
它有效,但我的问题是它也匹配字符“。”所以当字符串包含像 90.55
这样的数字时,我的数组看起来像 [90, 55]
这不是我想要的。我尝试将 ^\\.
添加到右方括号后的正则表达式的末尾:
stringofstuff.split("[!//.*?\n!]^\\.");
并且它成功地不匹配 。
但它不再识别任何类型的评论!我不知道哪里出错了,有什么建议吗?
最佳答案
您可以使用正则表达式包的模式和匹配器来做到这一点。 例如查找数字:
Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher(string);
if(m.find())
{
System.out.println(m.start()+" "+m.end()+" "+m.group);
}
同样,您可以对要分离的字符串进行不同的组合,并将它们存储在 m.group() 中。
有关正则表达式包的不同组合和更多信息,您可以在此处查看:
关于Java 正则表达式 : matching comments and NOT matching specific character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648662/