java正则表达式帮助

java正则表达式帮助,java,regex,Java,Regex,我可以有一个具有以下两种格式的字符串: "[HardCOdeText1 (HardCodeText2)].[HardCodeText3].[MatchString] between changeValue1 and changeValue2"; "[MatchString] between changeValue1 and changeValue2"; 我想匹配字符串是否在“表达式”之间有“”[MatchString]。 根据匹配的字符串,更改的值格式应为以下格式之一: 更改后的格式应为: "

我可以有一个具有以下两种格式的字符串:

"[HardCOdeText1 (HardCodeText2)].[HardCodeText3].[MatchString] between changeValue1 and changeValue2";
"[MatchString] between changeValue1 and changeValue2";
我想匹配字符串是否在“表达式”之间有“
”[MatchString]。
根据匹配的字符串,更改的值格式应为以下格式之一:
更改后的格式应为:

"[HardCOdeText1 (HardCodeText2)].[HardCodeText3].[MatchString] between chamged1 and changed2"; or
"[MatchString] between changed1 and changed2";
我开始匹配“[MatchString]between”表达式,我被卡在了那里:
非常感谢您的帮助。

[and]是正则表达式中的保留字符,您需要将其转义。 另外,这里有一个非常好的使用java regexp的在线正则表达式测试程序:

您是否使用“
之间的“
”[MatchString]作为您的模式,而不转义
[]
括号?字符
[
]
)和
都是正则表达式中的特殊字符。如果要将这些字符称为文字字符,则需要在模式中转义它们

你的问题有点不清楚。如果您提供了您正在使用的真实输入字符串的具体示例,以及您希望匹配的内容是什么


我还想查看更多信息和教程,包括关于正则表达式的Java实现的信息和语法。

这将匹配您给出的两种行示例

String inputLine;
String outputLine;

String regex1 = "(\\[MatchString\\] between )changeValue1 and";
String regex2 = "(\\[MatchString\\] between )[^ ]+ and";

do {
    inputLine = readTheInput();

    outputLine = inputLine.replaceFirst(regex1, "$1changed1 and");

    writeTheOutput(outputLine);
} while (thereIsStillInput());
第一个
regex1
专门查找
changeValue1
,而第二个
regex2
查找“介于”和“与”之前的任何内容


这应该让您开始。

示例格式字符串的某些部分看起来可能是文字,而有些部分是占位符-例如在
changeValue1和changeValue2之间
我猜您正在寻找文字“between”和“and”,因此您需要在正则表达式中使用这些文字,但是changeValue1可以是任何东西,所以您需要一个模式。我也不能确定
[
]
在您的示例中是作为占位符还是文本方括号。你能给出一个你想要匹配的真实文本的实际例子吗?“[HardCOdeText1(HardCodeText2)][HardCodeText3]。[MatchString]介于changeValue1和changeValue2之间”和[MatchString]介于changeValue1和changeValue2之间是我需要计算出来的字符串。好的,我怎样才能将前面有“[MatchString]between”的字符串与后面的任何字符进行匹配。这听起来像是家庭作业。