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”的字符串与后面的任何字符进行匹配。这听起来像是家庭作业。