[英]Split a string in java using regex
我正在嘗試使用正則表達式“ A. * B”拆分字符串,該字符串可以很好地檢索“ A”和“ B”之間的字符串。 但是點“。” 不包含換行符\\ n,\\ r。 您能指導我如何實現這一目標嗎?
謝謝
謝謝大家 Pattern.DOTALL就像一種魅力。
我還有另一個與此有關的問題。 如果我需要提取“ A”和“ B”之間的所有字符串(基本上與上述正則表達式匹配),該怎么辦。
我嘗試使用Matcher類的find()和group(),但是使用下面的模式,它似乎返回了整個字符串。
Pattern p = Pattern.compile("A.*B",Pattern.DOTALL);
使用帶有MULTILINE標志的java.util.regex.Pattern:
import java.util.regex.Pattern;
Pattern pattern = Pattern.compile("A.*B", Pattern.MULTILINE);
pattern.split(string);
嘗試“ A [。\\\\ s] * B”
或者,您可以將DOTALL開關指定為“。”。 將包括偶數行終止符。 看看Pattern類的文檔。
使用以下選項編譯正則表達式: Pattern regex = Pattern.compile("A.*B",Pattern.DOTALL)
我假設您為此使用Pattern
, Matcher
類。
您是否曾嘗試向Pattern.compile()
方法提供MULTILINE
?
Pattern.compile(regex, Pattern.MULTILINE)
'。' =任何字符(行匹配符可以匹配也可以不匹配)
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#lt
嘗試將yor regex更改為"A(.|\\\\s)*B"
這意味着A followed by any character(.) or any white character(\\s) any number of times followed by B
(需要雙換行\\ s Java代碼)。
Java中的正則表達式參考(構造,空格字符等): http : //docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
看看java.util.regex.Pattern.compile(String regex,int flags),特別是。 DOTALL標志
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.