import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\v(knop\\.\\h*(\\v|$))";
final String string = "PROGNOS FÖR OMRÅDE B DEN SÖDRA DELEN \n"
+ "GÄLLANDE DEN 31 JANUARI 2016 MELLAN 08 OCH 14 UTC \n"
+ " \n"
+ " \n"
+ "Turbulens \n"
+ "Område 3a,3b,3c,3d: Mot slutet av perioden måttlig turbulens, \n"
+ "SFC-3000ft. \n"
+ " \n"
+ " \n"
+ "Isbildning \n"
+ "Område 1b,1c,3a: I mitten och mot slutet av perioden lätt till \n"
+ "måttlig isbildning mellan 1000ft och FL070. \n"
+ "Område 2a,2b,3b,3c,3d: Under hela perioden lätt till måttlig \n"
+ "isbildning mellan 1000ft och FL070. \n"
+ " \n"
+ " \n"
+ "Sikt/Väder/Moln \n"
+ "Område 3c: I början av perioden sikt över 8km snöfall, lokalt \n"
+ "1500-3000m i snöblandat regn. Molnbas över 2000ft, lokalt 500-1000ft. \n"
+ "Molnöversida FL070. I mitten av perioden sikt över 8km, lokalt \n"
+ "3000-5000m i snöfall. Molnbas 500-1000ft, lokalt över 2000ft. \n"
+ "Molnöversida FL070. Mot slutet av perioden sikt över 8km. Molnbas \n"
+ "över 2000ft. Molnöversida FL070. \n"
+ "Område 2b: I början och mitten av perioden sikt över 8km, lokalt \n"
+ "1500-3000m i snöfall. Molnbas över 2000ft, lokalt under 500ft. \n"
+ "Molnöversida FL070. Mot slutet av perioden sikt över 8km, lokalt \n"
+ "3000-5000m i snöfall. Molnbas över 2000ft, lokalt 500-1000ft. \n"
+ "Molnöversida >FL125. \n"
+ "Område 3b: I början och mitten av perioden sikt 1500-3000m snöfall, \n"
+ "lokalt över 8km. Molnbas över 2000ft, lokalt under 500ft. \n"
+ "Molnöversida FL070. Mot slutet av perioden sikt över 8km. Molnbas \n"
+ "över 2000ft. Molnöversida FL070. \n"
+ "Område 2c: Under hela perioden sikt över 8km. Molnbas över 2000ft. \n"
+ "Molnöversida FL070. \n"
+ "Område 3d: I början av perioden sikt över 8km snöfall, lokalt \n"
+ "1500-3000m i snöblandat regn. Molnbas 500-1000ft, lokalt över 2000ft. \n"
+ "Molnöversida FL070. I mitten av perioden sikt över 8km, lokalt \n"
+ "3000-5000m i snöfall. Molnbas 500-1000ft, lokalt över 2000ft. \n"
+ "Molnöversida FL070. Mot slutet av perioden sikt över 8km. Molnbas \n"
+ "över 2000ft. Molnöversida FL070. \n"
+ "Område 1a: Under hela perioden sikt över 8km. Molnbas över 2000ft. \n"
+ "Molnöversida: Ingen prognos. \n"
+ "Område 1c: Under hela perioden sikt över 8km. Molnbas över 2000ft, \n"
+ "lokalt 500-1000ft. Molnöversida FL070. \n"
+ "Område 2a: Under hela perioden sikt 1500-3000m snöfall, lokalt över \n"
+ "8km. Molnbas över 2000ft, lokalt under 500ft. Molnöversida >FL125. \n"
+ "Område 1b: I början av perioden sikt över 8km. Molnbas över 2000ft. \n"
+ "Molnöversida: Ingen prognos. I mitten och mot slutet av perioden sikt \n"
+ "över 8km. Molnbas över 2000ft, lokalt 500-1000ft. Molnöversida FL070. \n"
+ "Område 3a: I början av perioden sikt över 8km. Molnbas över 2000ft. \n"
+ "Molnöversida: Ingen prognos. I mitten av perioden sikt över 8km, \n"
+ "lokalt 1500-3000m i snöfall. Molnbas över 2000ft, lokalt under 500ft. \n"
+ "Molnöversida FL070. Mot slutet av perioden sikt över 8km, lokalt \n"
+ "3000-5000m i snöfall. Molnbas över 2000ft, lokalt 500-1000ft. \n"
+ "Molnöversida FL070. \n"
+ " \n"
+ " \n"
+ "Nollgradersisoterm \n"
+ "I hela området: Noll grader vid 500ft. \n"
+ " \n"
+ "Vind vid marken \n"
+ "Område 2b,2c: S-SV/5-10 knop, efterhand S-SV/10 knop. \n"
+ "Område 3b,3c,3d: SV-V/10-15 knop, byar upp till 25 knop, efterhand \n"
+ "V/15-20 knop, byar upp till 30 knop. \n"
+ "Område 3a: S-SV/5-10 knop, efterhand V/15-20 knop, byar upp till 30 \n"
+ "knop. \n"
+ "Område 1a: SV/10-15 knop. \n"
+ "Område 2a: SV-V/10-15 knop, byar upp till 25 knop. \n"
+ "Område 1b,1c: SV/15-20 knop, efterhand SV-V/15-20 knop. \n"
+ " \n"
+ " \n"
+ "Vind och temperatur \n"
+ "2000ft: \n"
+ "I hela området: 240/25kt -1, efterhand 260/25kt -1 \n"
+ "FL50: \n"
+ "I hela området: 260/25kt -7, efterhand 280/30kt -8 \n"
+ "FL100: \n"
+ "I hela området: 250/25kt -17, efterhand 270/30kt -17 \n"
+ " \n"
+ "Lägsta QNH \n"
+ "982 hPa, lägst i norr, stigande \n"
+ " \n"
+ "Tilläggsinformation \n"
+ "Förekomsten av TCU eller CB innebär alltid risk för måttlig till svår \n"
+ "isbildning och turbulens, även om det inte framgår explicit av \n"
+ "prognosen.";
final String subst = "$1";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceFirst(subst);
System.out.println("Substitution result: " + result);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html