如何從字符串中僅提取格式化部分。例如: 如果我有一個字符串=「警告:發生錯誤{0},{1,9}模塊已完成{2:0%}。」 我想提取{0},{1,9}和{2:0%}到一個sting數組中。是否有一個正則表達式或其他可以完成的事情,除了我的交替使用Substring indexof'{'和'}'來循環字符串的方式?如何從字符串中提取格式化部分
0
A
回答
1
「\ {[^}] + \}」的某些變體不起作用嗎?通過從比賽開始到結束找到比賽和子串來運行它。
0
new Regex(@"\{[0-9:,% .]+\}");
您可能需要對其進行調整/調整,以考慮您在示例中未提供的任何其他格式選項。
0
在Java中,Matcher類採用正則表達式並將返回所有匹配的子字符串。
例如:
String str = "Warning: the error {0} has occurred. {1, 9} module has {2:0%} done.";
Matcher matcher = pattern.matcher("{.*}");
while (matcher.find()){
String matched = matcher.group()
\\do whatever you want with matched
}
1
下面的代碼是從它使用非貪婪匹配其它不同的答案( 「*?」):
private static void Main(string[] args) {
const string input = "Warning: the error {0} has occurred. {1, 9} module has {2:0%} done.";
const string pattern = "{.*?}"; // NOTE: "?" is required here (non-greedy matching).
var formattingParts = Regex.Matches(input, pattern).Cast<Match>().Where(item => item.Success).Select(item => item.Groups[0].Value);
foreach (var part in formattingParts) {
Console.WriteLine(part);
}
}
相關問題
- 1. 如何從格式化字符串中提取貨幣金額?
- 2. 如何從格式化的字符串中提取值?
- 3. 如何在Flink 1.2中從Kafka中提取部分json格式的字符串
- 4. 從字符串中提取格式化的數字
- 5. 如何提取部分字符串
- 6. cmd:如何提取部分字符串?
- 7. 如何提取一部分字符串?
- 8. 如何提取部分字符串?
- 9. 如何提取一部分字符串?
- 10. 如何提取一部分由空格分隔的字符串?
- 11. 如何格式化python中的一部分字符串?
- 12. 提取部分字符串
- 13. 提取部分字符串
- 14. 提取部分字符串?
- 15. 提取部分字符串從一個字符串在java中
- 16. 從字符串中提取部分字符串?
- 17. 如何從Java中的字符串中提取部分域?
- 18. 我如何從python中的字符串中提取部分值?
- 19. 從非格式化字符串中提取數據
- 20. 如何從多個字符串中提取不同的部分?
- 21. 如何從字符串中提取地址的部分?
- 22. 如何從字符串中獲取部分字符串
- 23. ios - 如何從JSON格式的另一個字符串中提取字符串?
- 24. 如何從字符串中獲取「1.2」格式的字符串?
- 25. 如何從格式化的字符串中獲取值?
- 26. 使用Spark提取CSV格式的字符串的一部分
- 27. 如何使用python從格式化的字符串中提取數據?
- 28. 在python中提取部分字符串
- 29. 在Golang中提取部分字符串?
- 30. 在BASH中提取部分字符串
+1我開始用命名匹配寫一些東西來幫助單獨提取每個部分,但是上面的代碼阻止了我 - 非常好的解決方案 – 2009-05-01 15:47:43