[英]How to match regex at start index?
如何創建一個開始匹配開始搜索的正則表達式?
換一種說法:
等於\\A
是什么,即“在搜索開始時匹配,即使它不在主字符串的開頭”?
new Regex(@"\A\n").IsMatch("!\n", 1); // Should be true, but is false
你要找的是\\G
:
new Regex(@"\G\n").IsMatch("!\n", 1); // It's twue, it's twue!
實際上,這對我來說是一個驚喜。 我知道\\G
,但它通常被描述為匹配輸入開始或最近成功匹配結束的錨點,這兩點都不適用於此。 如果這是一項.NET創新,那么它們應該更加喧囂; 看起來它可能非常方便。
編輯:想想看,Java的find(int)
確實以同樣的方式工作 - 我甚至廣泛使用它。 但后來他們在Java 5中添加了“regions”API,它提供了更好的控制,我忘了這個成語。 我從未想過要在.NET中尋找它。
哦,我只記得我在4 - 5年前在一本關於Regex.Match
的書中Regex.Match
......
重載不像我們期望的那樣!
超載
Regex.Match(string input, int index, int length)
指定要搜索的子字符串 ,而重載
Regex.Match(string input, int index)
只是指示搜索應該從哪里開始 !
(我想這是從子串中的任意位置開始的一種情況。)
希望這對人們具有啟發意義......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.