Java-需要帮助来构造正则表达式模式n

Java-需要帮助来构造正则表达式模式n,java,regex,parsing,Java,Regex,Parsing,我有一个字符串,我试图提取一段特定的单词,希望有人能帮助我以一种安全的方式解析字符串,只得到这段。字符串的格式如下所示 _____ _____ replied to _____ _____ about the **THIS IS THE PART I NEED TO GET** topic in the _____ forum. 无论哪里有空白,任何单词都有可能出现,我需要得到的部分也可以是任意长度的 这里有一个正则表达式,它匹配您发布的内容,并提取您在组中放入**的内容 ^.*replied

我有一个字符串,我试图提取一段特定的单词,希望有人能帮助我以一种安全的方式解析字符串,只得到这段。字符串的格式如下所示

_____ _____ replied to _____ _____ about the **THIS IS THE PART I NEED TO GET** topic in the _____ forum.

无论哪里有空白,任何单词都有可能出现,我需要得到的部分也可以是任意长度的

这里有一个正则表达式,它匹配您发布的内容,并提取您在组中放入
**
的内容

^.*replied to.*about the (.*) topic in the .* forum\.$
你可以测试一下

非贪婪的版本看起来像

^.*?replied to.*?about the (.*) topic in the .* forum\.$
你可以测试一下

这些是RAW正则表达式,对于Java,您需要用
\\
转义
\


与这里的大多数正则表达式问题不同,这个问题实际上非常适合正则表达式。这里有一个正则表达式,它匹配您发布的内容,并提取您在组中放入的内容

^.*replied to.*about the (.*) topic in the .* forum\.$
你可以测试一下

非贪婪的版本看起来像

^.*?replied to.*?about the (.*) topic in the .* forum\.$
你可以测试一下

这些是RAW正则表达式,对于Java,您需要用
\\
转义
\



与这里的大多数正则表达式问题不同,这个问题实际上非常适合正则表达式

你说的详细是什么意思?不是100%确定你的意思。一个示例输入和预期输出将有助于详细分析它,这是一种安全的解析方法,我不会意外地得到字符串的错误部分。我还没有尝试过任何东西,我知道我可以从单词“the”到单词“topic”得到A子字符串,但不知道如果我试图得到的字符串包含单词“topic”,如何补偿在它里面。@user1103205在最坏的情况下,
主题
论坛
名称在“中都包含
”主题,在这种情况下,没有办法知道你真正想要的是哪一部分你说的冗长是什么意思?不能100%确定你的意思。一个示例输入和预期输出将有助于详细分析它,这是一种安全的解析方法,我不会意外地得到字符串的错误部分。我还没有尝试过任何东西,我知道我可以从单词“the”到单词“topic”得到A子字符串,但不知道如果我试图得到的字符串包含单词“topic”,如何补偿在它里面。@user1103205在最坏的情况下,
主题
论坛
名称在“
中都包含
”主题,在这种情况下,没有办法知道你真正想要的是哪一部分,你认为我应该首先取消重复,以便在主题名称中尽可能多地包含,如果它包含
回复的
关于
的内容。哇,谢谢你的快速回复。@m.buettner如果你想改进,请随意编辑我的答案。@JarrodRoberson我只是想给你提个建议,让你适应还是不适应。。。您可能有充分的理由不使用不灵活的量词;)。基于这个问题,这并不是一个错误。因为我在java中使用它,所以在模式中粘贴正则表达式时,我得到了一个错误“无效的转义序列(有效的转义序列是\b\t\n\f\r\“\'\”)。compile()方法我想我会先不加限制地重复,以便在主题名称中包含尽可能多的内容,如果它包含
回复的
关于
。哇,谢谢你的快速回复。@m.buettner如果你想改进的话,请随意编辑我的答案。@JarrodRoberson我只是想给你提个建议不管你是否适应……你可能有充分的理由不使用不灵活的量词;)。这并不是基于这个问题的错误。因为我在java中使用它,所以在将正则表达式粘贴到Pattern.compile()方法中时,我收到了一个错误“无效的转义序列(有效的转义序列是\b\t\n\f\r\“\”\”\)