正则表达式识别'#'字符串

时间:2013-03-03 17:43:45

标签: java regex

我有一个java问题。当遇到一个或多个'#'实例时,我无法弄清楚如何编写我的正则表达式来打印文件。它不能在string equals“”时打印,但必须在string equals“#”时打印。这是我的代码:

int num = 1;
StringBuffer noletterbuf = new StringBuffer(nospaces);
noletterbuf.deleteCharAt(0);
String noletter = noletterbuf.toString();
//if(num == noletter.split("[^#]").length){//applies # to C# and C
if(num == noletter.split("[#*]").length){//applies # to C
double yacc = octave*-50;
p6.println("sb.append(\"/Times-Roman findfont 70 scalefont setfont 1 -1 scale newpath  \"); sb.append(" + xaccplace + " + \" \" +" + yacc + " + \" moveto \"); sb.append(\"( # ) show 1 -1 scale \");");
}

提前致谢! 比约

3 个答案:

答案 0 :(得分:4)

为什么要使用正则表达式和.split(),因为你只是放弃了生成的数组?

您可以使用以下内容检查字符串是否包含#

if (noletter.indexOf('#') >= 0) {
    // ...
}

答案 1 :(得分:0)

您的代码:

noletter.split("[#*]")

这将在每个#和每个*分开,因为星号在括号内。

答案 2 :(得分:0)

使用正则表达式检查的简单方法是:

if (str.matches(".*#.*")) // true if there's a # in str

我不明白“无空格”的相关性,或者为什么使用StringBuffer,或者为什么删除了第一个字符。