用正则表达式解析Java Wiki语法

用正则表达式解析Java Wiki语法,java,regex,string,Java,Regex,String,我正在制作一个用于生成HTML文档的应用程序。我认为正则表达式是将标记替换为HTML标记的正确方法。我提出了一个可以工作的正则表达式来查找标记,但是在保留这句话的同时,我找不到JavaAPI来替换它 答案所建议的正则表达式: --([^-]+)--(regex--([^-])+--在Java API中表现不好。在捕获组中移动+可以解决此问题。) 示例: --这是罢工--应该是这是罢工 但是像这是----普通文本或---三连字符--这样的情况不应该被替换。 然而,像--striked----这样的

我正在制作一个用于生成HTML文档的应用程序。我认为正则表达式是将标记替换为HTML标记的正确方法。我提出了一个可以工作的正则表达式来查找标记,但是在保留这句话的同时,我找不到JavaAPI来替换它

答案所建议的正则表达式:
--([^-]+)--
(regex
--([^-])+--
在Java API中表现不好。在捕获组中移动
+
可以解决此问题。)

示例:
--这是罢工--
应该是
这是罢工

但是像
这是----普通文本
---三连字符--
这样的情况不应该被替换。 然而,像
--striked----这样的情况也同样适用于--

请只使用Java 6。
欢迎任何帮助。提前谢谢

编辑:根据答案,我似乎可以使用
$1
来实现此目的。

(…)
按发生顺序从1开始编号。 后缀运算符
*
=0或更多,
+
为1或更多

s = s.replaceAll("--([^-]+)--", "<strike>$1</strike>");
s=s.replaceAll(“--”([^-]+)--”和“$1”);
(…)
按出现顺序从1开始编号。 后缀运算符
*
=0或更多,
+
为1或更多

s = s.replaceAll("--([^-]+)--", "<strike>$1</strike>");
s=s.replaceAll(“--”([^-]+)--”和“$1”);

问了我的一个朋友之后,我得到了一个答案


-([^-]+([^-]+)*)-
将正常工作,并将主题字符串捕获为
$1

在询问我的一位朋友后,我得到了答案


-([^-]+([^-]+)*)-
将正常工作,并将主题字符串捕获为
$1

您要查找的是。听起来您需要学习更多关于正则表达式的知识,因为捕获组是非常基本的正则表达式。除非你把这当作练习,我想你的正则表达式也不行。例如,它与
不匹配--这是文本中带有连字符的strike--
@tkausl我实际上在尝试解析一个变体。@Andreas谢谢,似乎捕获组是我要找的东西。我编辑了这个问题。你要找的是。听起来您需要学习更多关于正则表达式的知识,因为捕获组是非常基本的正则表达式。除非你把这当作练习,我想你的正则表达式也不行。例如,它与
不匹配--这是文本中带有连字符的strike--
@tkausl我实际上在尝试解析一个变体。@Andreas谢谢,似乎捕获组是我要找的东西。我编辑了这个问题。我确认regex
--([^-])+--
在Java6API中表现不好。在捕获组中移动
+
解决了问题。我确认regex
--([^-])+--
在Java 6 API中表现不好。在捕获组内移动
+
解决了问题。