[英]java string.split() regex help
如果我有一個可變字符串,該字符串存儲的字符段與較大的字符串不同,那么如何使用帶有regex的split命令將較大的字符串拆分為較小的字符串?
例如,字符串變量可以存儲“ def”。較大的字符串可以是“ abcdefghi”
當使用正則表達式輸入作為字符串變量執行split命令時,所得的拆分將如下所示:
abc吉
編輯:這是代碼
String string = new String("2+22*5-1*2");
String multiply = new String("22*5");
int leftNum = Integer.parseInt(multiply.split("\\*")[0]);
int rightNum = Integer.parseInt(multiply.split("\\*")[1]);
System.out.println(string);
System.out.println(multiply);
System.out.println(leftNum * rightNum);
//the following should print "2+"
String left = string.split(multiply)[0];
System.out.println(left);
"abcdefghi".split("def")
將產生{"abc", "ghi"}
。
您必須轉義*
才能multiply
的內容用作正則表達式( split
的參數為正則表達式):
String regexp = multiply.replace("*", "\\*");
String left = string.split(regexp)[0];
這應該打印預期的結果( 2+
)
string.split("\\Q" + substring + "\\E");
\\ Q和\\ E為您轉義了元字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.