簡體   English   中英

提取相同字符的2個字符之間的字符串

[英]Extract a string between 2 characters of the same character

我理解如何在[和],或()等兩種不同類型的字符串之間提取字符串...

但我不知道的是如何在1個字符之間獲得多個/所有字符串。 例如:

the *big* brown fox *jumps over* the *lazy* **dog**

它應返回“*”:

big
jumps over
lazy

它也應該返回“**”:

dog

所有庫,正則表達式模式等都不支持這樣的功能。

這個正則表達式:

[\*]+([a-z ]*)[\*]+

將匹配您要找的東西。 看到這個

  • [\\*]+最后匹配1個或更多* s。
  • ([az ]*)匹配az和空格之間的字符,並返回該字符。

現在,因為安迪·特納指出,這也符合dog*dog********* ,你可以這樣做:

[\*]{1,2}([a-z ]*)[\*]{1,2}

這將匹配*的1和2之間(參見 )可以更改到的任何范圍,但請注意, {1,3}將匹配1,2或3次,不僅1和3倍。

String str="the *big* brown fox *jumps over* the *lazy* **dog**"    
str = str.replace("**", "*");

然后執行您正在使用的提取方法

String test = "the *big* brown fox *jumps over* the *lazy* **dog**";

StringTokenizer st = new StringTokenizer(test,"*");

while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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