Matching Line Boundaries in a Regular Expression
By default, the beginning-of-line matcher (^) and end-of-line matcher
($) do not match at line boundaries. They match the beginning and end
of the entire input sequence. For example, the pattern ^a matches
abc but does not match def\nabc. To enable ^ and
$ to match line boundaries, the pattern should be compiled with
the multiline flag enabled.
It is also possible to enable multiline mode within a pattern
using the inline modifier (?m). For example, multiline mode is
enabled in the pattern (?m)^a. Multiline mode can be disabled
using (?-m).
CharSequence inputStr = "abc\ndef"; String patternStr = "abc$"; // Compile with multiline enabled Pattern pattern = Pattern.compile(patternStr, Pattern.MULTILINE); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.find(); // true // Use an inline modifier to enable multiline mode matchFound = pattern.matches(".*abc$.*", "abc\r\ndef"); // false matchFound = pattern.matches("(?m).*abc$.*", "abc\r\ndef"); // true
哦哦,这东西写得好像还行。(就是不知你看的懂我所写的不?)
what does "abc$.*" mean ?
fds k;ljgiadrnkfndsakj ewra
Good post!