我试图在Textpad中找到一个带有正则表达式的字符(例如“#”),如果找到它,则应该删除整行。 #不是在行的开头,也不在末尾,而是介于两者之间,并且没有连接到另一个单词,数字或字符串 - 它与左右空白单独存在,但当然其余部分包含单词和号。
示例:
My first line
My second line with # hash
My third line# with hash
结果:
My first line
My third line# with hash
我怎么能做到这一点?
答案 0 :(得分:4)
让我们分解一下:
^ # Start of line
.* # any number of characters (except newline)
[ \t] # whitespace (tab or space)
\# # hashmark
[ \t] # whitespace (tab or space)
.* # any number of characters (except newline)
或,在一行中:^.*[ \t]#[ \t].*
答案 1 :(得分:1)
答案 2 :(得分:0)
编辑:改变以反映蒂姆的观点
这个
public static void main(String[] args){
Pattern p = Pattern.compile("^.*\\s+#\\s+.*$",Pattern.MULTILINE);
String[] values = {
"",
"###",
"a#",
"#a",
"ab",
"a#b",
"a # b\r\na b c"
};
for(String input: values){
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(input.substring(m.start(),m.end()));
}
}
}
给出输出
a # b