gpt4 book ai didi

java - 从字符串中删除所有以 char '[' 开头并以 char ']' 结尾的正则表达式实例

转载 作者:行者123 更新时间:2023-11-29 10:10:48 29 4
gpt4 key购买 nike

我需要拍一张 String并删除其中以 character 开头的所有正则表达式'[' 并以 character 结尾']'.

现在我不知道如何解决这个问题。我试图转换 String到字符数组,然后从任何开始的'['到他的结束']'放入空字符,然后将其转换回String使用 toString()方法。

我的代码:

char[] lyricsArray = lyricsParagraphElements.get(1).text().toCharArray();
for (int i = 0;i < lyricsArray.length;i++)
{
if (lyricsArray[i] == '[')
{
lyricsArray[i] = ' ';
for (int j = i + 1;j < lyricsArray.length;j++)
{
if (lyricsArray[j] == ']')
{
lyricsArray[j] = ' ';
i = j + 1;
break;
}
lyricsArray[j] = ' ';
}
}
}
String songLyrics = lyricsArray.toString();
System.out.println(songLyrics);

但是在 songLyrics 的打印行中,我得到了一些奇怪的东西,比如

[C@71bc1ae4
[C@6ed3ef1
[C@2437c6dc
[C@1f89ab83
[C@e73f9ac
[C@61064425
[C@7b1d7fff
[C@299a06ac
[C@383534aa
[C@6bc168e5

我想有一个简单的方法。任何帮助将不胜感激。

澄清一下:转换 "abcd[dsadsadsa]efg[adf%@1]d""abcdefgd"

最佳答案

或者简单地使用正则表达式来replace all \\[.*\\] 没有出现:

String songLyrics = text.replaceAll("\\[.*?\\]", "");

text 当然是:

String text = lyricsParagraphElements.get(1).text();

\\[.*\\] 是什么意思?

replaceAll 的第一个参数是描述正则表达式的字符串。正则表达式定义了在字符串中匹配的模式。

所以让我们把它分开:

\\[ 完全匹配字符 [。因为 [ 有一个 special meaning在正则表达式中,它需要被转义(两次!)。

. 匹配任何字符,将其与 ( lazy ) 零或多个运算符 *? 相结合,它将匹配任何字符,直到它最终找到:

\\],匹配字符]。再次注意转义。

关于java - 从字符串中删除所有以 char '[' 开头并以 char ']' 结尾的正则表达式实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36136162/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com