如何從字符串中僅提取格式化部分。例如: 如果我有一個字符串=「警告:發生錯誤{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. 如何格式化python中的一部分字符串?
- 7. 如何從Java中的字符串中提取部分域?
- 8. 從非格式化字符串中提取數據
- 9. 如何從字符串中提取地址的部分?
- 10. 如何從多個字符串中提取不同的部分?
- 11. 如何從字符串中獲取部分字符串
- 12. 如何從格式化的字符串中獲取值?
- 13. 如何使用python從格式化的字符串中提取數據?
- 14. 在Golang中提取部分字符串?
- 15. 在python中提取部分字符串
- 16. 從UTF-8格式字符串中提取雙字節字符/子字符串
- 17. 提取從逗號分隔字符串字符串的SQL Server中的部分
- 18. 在Python日誌格式化程序中部分字符串格式化
- 19. 從子串中提取字符串的一部分
- 20. 從分隔字符串中提取
- 21. 如何使用本地化字符串格式化字符串?
- 22. 迭代格式化字符串的特定部分在Java中
- 23. 如何格式化大字符串中的字符串?
- 24. 從字符串中取出部分
- 25. 如何從字符串中提取值
- 26. 如何從字符串中提取值
- 27. 如何從字符串中提取?
- 28. 如何從字符串中提取值
- 29. 如何從字符串中提取帶有分隔符的子字符串php
- 30. 如何格式化字符串,如#。#。#。#
+1我開始用命名匹配寫一些東西來幫助單獨提取每個部分,但是上面的代碼阻止了我 - 非常好的解決方案 – 2009-05-01 15:47:43