簡體   English   中英

如何在開始索引處匹配正則表達式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM