java - RegEx忽略或跳过括号内的所有文本和数字

标签 java regex text-to-speech

我正在尝试使用 RegEx 来阅读圣经评论中的一些文本,其中一些文本在括号内有很多引文和引用(例如,这些评论之一支持他所说的几乎所有内容,括号内有圣经段落,这在神学上很好,但不是为了阅读和享受晨间散步)。因此,当我听很多课文时,我想忽略它们(括号内的任何内容)(如果需要,我稍后会关注它们)。

这是我正在制作的文本示例,用于说明:

The Bible teaches clearly that God loves the whole world (See: John 3:16 and OtherBibleBook 1:3-7,9), not just Israel.

我只想在播放应用程序时听到以下短语:

The Bible teaches clearly that God loves the whole world, not just Israel.

我需要输入的“模式”是什么? (所有那些对程序员有意义但对我来说毫无意义的奇怪字符)。我正在使用一个名为@Voice Aloud 的 Android 应用程序。

最佳答案

如果您可以更改文本、代码或输入正则表达式,那么您所要求的是完全可行的!

更改文本或代码

你需要使用这样的东西:

String s = "The Bible teaches clearly that God loves the whole world (See: John 3:16 and OtherBibleBook 1:3-7,9), not just Israel."

string.replaceAll("\\(.*?\\)", "");

//ouput : The Bible teaches clearly that God loves the whole world , not just Israel.

输入正则表达式

这里的正则表达式是\(.*?\)。你可以查看here它匹配括号中的所有内容。然后您可以使用替换模式将其删除。根据应用程序使用的正则表达式的风格,您可能必须使用特定的东西 - 因为 Android 使用 Java,它只会要求您提供替换字符串:“”。

如果你想删除括号前的空格,你可以改用这个正则表达式:

\s{0,1}\(.*?\)

或者在 Java 代码中:

string.replaceAll("\\s{0,1}\\(.*?\\)","");

关于java - RegEx忽略或跳过括号内的所有文本和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837923/

相关文章:

java - Swing 中的 JSplitPane propertyChange 事件

java - 有没有办法在不使用 instanceof 的情况下强制方法使用子类构造函数?

javascript:解析 URL 中的变量

java - split ("\\W") 和 split ("[^\\w' ]"有什么区别

google-api - 什么是用于 TTS(文本到语音)的 Google Cloud API?

android - 在 Android 应用程序中集成语音导航

java - 无法在 Room 数据库的表内创建条目

java - IntelliJ Idea,如何从控制台删除java文件目录?

mysql - 如何将 REGEXP 与转义序列(如字边界)一起使用?

android - 语音识别 Intent 在 TTS 结束说话之前开始