The raw data is:
auser1 home1b auser2 home2b auser3 home3b I want to match a line, but it doesn't work using ^(.*?)$
However, I can use a(.*?)b to match user1 home1.
How can I match auser1 home1b
"\n" matches a newline character.
To match the start or the end of a line, we use the following anchors: Caret (^) matches the position before the first character in the string. Dollar ($) matches the position right after the last character in the string.
Using String. equals() :In Java, string equals() method compares the two given strings based on the data/content of the string. If all the contents of both the strings are same then it returns true. If any character does not match, then it returns false.
The backslash \ is an escape character in Java Strings. That means backslash has a predefined meaning in Java. You have to use double backslash \\ to define a single backslash. If you want to define \w , then you must be using \\w in your regex.
By default, ^ and $ match the start- and end-of-input respectively. You'll need to enable MULTI-LINE mode with (?m), which causes ^ and $ to match the start- and end-of-line:
(?m)^.*$ The demo:
import java.util.regex.*; public class Main { public static void main(String[] args) throws Exception { String text = "auser1 home1b\n" + "auser2 home2b\n" + "auser3 home3b"; Matcher m = Pattern.compile("(?m)^.*$").matcher(text); while (m.find()) { System.out.println("line = " + m.group()); } } } produces the following output:
line = auser1 home1b line = auser2 home2b line = auser3 home3b
The fact that ^.*$ didn't match anything is because the . by default doesn't match \r and \n. If you enable DOT-ALL with (?s), causing the . to match those as well, you'll see the entire input string being matched:
(?s)^.*$ In this case, you mind as well drop the ^ and $ and simply look for the pattern .*. Since . will not match \n, you'll end up with the same matches when looking for (?m)^.*$, as @Kobi rightfully mentioned in the comments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With