簡體   English   中英

使用正則表達式在Java中拆分字符串

[英]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)

我假設您為此使用PatternMatcher類。

您是否曾嘗試向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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM