我正在構建Java語音控制計算器,並且遇到解析輸入問題。比如我輸入如何以空格分割字符串,但有例外
10五
鴻溝,我想這個字符串由空格分割成一個數組,但我「的鴻溝」不被分割,因此輸出應該要像
- 除以
請幫忙。我試圖使用正則表達式,但沒有運氣。
非常感謝。
我正在構建Java語音控制計算器,並且遇到解析輸入問題。比如我輸入如何以空格分割字符串,但有例外
10五
鴻溝,我想這個字符串由空格分割成一個數組,但我「的鴻溝」不被分割,因此輸出應該要像
請幫忙。我試圖使用正則表達式,但沒有運氣。
非常感謝。
可以定義非分裂短語的列表(例如divide by
,equals to
)和而不是按空間匹配拆分所有這樣的短語或單個詞使用交替:
\b(?:divide by|equals to)\b|\w+
演示:https://regex101.com/r/QhNvGo/1
和Java代碼:
String input = "ten divide by five equals to two";
Pattern pattern = Pattern.compile("\\b(?:divide by|equals to)\\b|\\w+");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(0));
}
解決此問題的另一種方法是,如果您有一個小數據集,並且您知道以下單詞的大小(不應該按空格分隔)始終爲2個字母或更少,則可以嘗試類似於此的正則表達式:
\s(?=\w{2}\S)