我正在將一個文件的某些內容與正則表達式匹配並從中獲取組。我怎樣才能得到每個匹配組的開始和結束位置? 需要位置替換那些部分 有什麼建議嗎?Java中一個模式的每個匹配器組的索引
-4
A
回答
0
,您可以直接與replaceAll function更換您所需的內容:
此方法替換此字符串與給定替換給定的正則表達式匹配的每個子字符串。
然後,你可以用它喜歡:
replaceAll("[0-9]", "X");
希望它可以幫助你!
1
下面的代碼打印匹配正則表達式和文本中的起始和結束位置的文本:
String text = "a long text regex to match";
Matcher m = Pattern.compile("regex").matcher(text);
while (m.find()){
String found = m.group();
System.out.println(found + " " + m.start() + " " + m.end());
}
0
您正在尋找方法m.start(int groupId)
和m.end(int groupId)
Java文檔: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#start(int)
在這種情況下,我會考慮使用命名捕獲組(?<GROUP-NAME>YOUR_REGEX)
和方法m.start("GROUP-NAME")
和m.end("GROUP-NAME")
。通過這種方式,當您更改輸入文本或添加/刪除某些組時,您的組名稱將保持不變。 :)
相關問題
- 1. 爲每個索引指定值匹配
- 2. 正則表達式 - 引用搜索中的第一個匹配
- 3. Java模式/匹配器
- 4. 與多個匹配匹配的模式
- 5. 的Java:讓每一個正則表達式匹配的字符串數組
- 6. JavaScript匹配一個數組的片段並返回索引值
- 7. 你能模式匹配elixir中的一個非空數組嗎?
- 8. Stream方式獲取第一個元素匹配的索引boolean
- 9. 檢索另一個陣列中匹配點的索引
- 10. 如何比較兩個數組的每個索引處的內容並返回匹配索引
- 11. 模式和匹配器的Java問題
- 12. Java模式匹配器單個或多個用逗號分隔
- 13. 在同一索引處使用兩個感應類型值匹配的模式
- 14. 查找兩個數組中的索引匹配
- 15. 查找兩個numpy數組中匹配行的索引
- 16. 如何在Java中找到多個模式(使用匹配器)
- 17. Java模式匹配
- 18. Java中的正則表達式:如何引用「匹配模式」?
- 19. 匹配模式並打印後匹配一個字的grep
- 20. 索引匹配多個引用
- 21. 獲取在正則表達式中匹配的組的索引?
- 22. 使Java正則表達式 '[ABC] +' 每個字母匹配一次
- 23. 的Java模式匹配特定模式來匹配
- 24. 在java中匹配用戶名和密碼索引的索引
- 25. 如何查找TensorFlow中第一個匹配元素的索引
- 26. Python Pandas - 識別Dataframe列中第一個匹配值的索引
- 27. 如何爲數組的每個索引分配一個變量名?
- 28. 如何搜索txt文件中的模式,並在匹配第一個模式的文件上打印第二個模式匹配的結果?
- 29. 如何模式匹配一個函數?
- 30. PHP - 生成一個匹配模式串
你能提供一些例子,像這樣沒有人能理解你 –
你不需要這些職位,你的方法是一個黑客的東西。 'String#replaceAll()'可能可以做你想到的。 –