我正在尝试使用正则表达式(java replaceAll)执行以下操作:
**Input:**
Test[Test1][Test2]Test3
**Output**
TestTest3
简而言之,我需要删除方括号内的所有内容,包括方括号。
我正在尝试这个,但它不起作用:
\\[(.*?)\\]
你能帮忙吗?
谢谢,
腰带
答案 0 :(得分:11)
你可以试试这个正则表达式:
\[[^\[]*\]
并替换为空
Java源代码示例:
final String regex = "\\[[^\\[]*\\]";
final String string = "Test[Test1][Test2]Test3\n";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
final String result = matcher.replaceAll(subst);
System.out.println(result);
答案 1 :(得分:3)
您的原始模式适合我:
df = pd.read_csv(StringIO(temp),delim_whitespace=True, parse_dates={'Dates':['Date','Time']})
mask = df.Dates.dt.round('H').ne(df.Dates)
df1 = df[mask]
print (df1)
Dates Point_1
1 2017-03-27 00:05:00 12.96
2 2017-03-27 00:10:00 13.30
3 2017-03-27 00:15:00 13.27
4 2017-03-27 00:20:00 13.15
5 2017-03-27 00:25:00 13.14
6 2017-03-27 00:30:00 13.25
7 2017-03-27 00:35:00 13.26
8 2017-03-27 00:40:00 13.24
9 2017-03-27 00:45:00 13.43
10 2017-03-27 00:50:00 13.23
11 2017-03-27 00:55:00 13.27
13 2017-03-27 01:05:00 13.17
14 2017-03-27 01:10:00 13.10
15 2017-03-27 01:15:00 13.06
16 2017-03-27 01:20:00 12.99
17 2017-03-27 01:25:00 13.08
18 2017-03-27 01:30:00 13.04
19 2017-03-27 01:35:00 13.06
20 2017-03-27 01:40:00 13.07
21 2017-03-27 01:45:00 13.07
22 2017-03-27 01:50:00 13.02
23 2017-03-27 01:55:00 13.13
<强>输出:强>
String input = "Test[Test1][Test2]Test3";
input = input.replaceAll("\\[.*?\\]", "");
System.out.println(input);
请注意,括号内不需要括号。如果您计划捕获每对括号之间的内容,则可以使用它,在您不需要的情况下。将它们放在那里并没有错,只是没有必要。
在这里演示:
答案 2 :(得分:0)
\[\w+]
这对我有用,这个正则表达式匹配方括号中的所有单词。