다음 코드를 발견하여 here 텍스트의 n 번째 값을 찾습니다. 줄 바꿈이있는 텍스트에서 n 번째 항목을 찾는이 기능이 작동하지 않는 이유는 무엇입니까?
이
코드입니다 :public static int NthIndexOf(this string target, string value, int n)
{
Match m = Regex.Match(target, "((" + value + ").*?){" + n + "}");
if (m.Success)
return m.Groups[2].Captures[n - 1].Index;
else
return -1;
}
내가 어떤 웹 페이지에 (공간이 원래 문자열에 나타나지 않습니다) "</FORM>"의 두 번째 발생의 인덱스를 찾기 위해 노력하고, 실패 했음에도 불구하고 텍스트에 존재합니다. 또한 웹 페이지의 일부 접두사를 잘라내어 두 번째 항목이 첫 번째 항목이되고 첫 번째 항목으로 식을 찾는 데 성공했습니다.
이 코드에 대한 주석 중 하나에서 누군가 "이 대상 문자열에 줄 바꿈이 포함되어 있으면이 정규식이 작동하지 않습니다."라고 썼습니다.
내 두 가지 질문은 다음과 같습니다
하지 않는 이유는이 코드가 작동 대상 문자열 바꿈이 포함 된 경우?
어떻게이 코드를 수정할 수 있습니까? 줄 바꿈이 포함 된 문자열에도 사용할 수 있습니다 (줄 바꿈을 바꾸거나 제거하는 것이 나에게 좋은 해결책으로 간주되지 않습니다)?
같은 일을하는 다른 기술을 찾지 않습니다.
입력 및 출력의 예를 들려 줄 수 있습니까? – gunr2171
HTML에서 데이터를 읽으려는 경우 [regex] (http://stackoverflow.com/) 대신 [Html Agility Pack] (http://htmlagilitypack.codeplex.com/)을 사용하는 것이 좋습니다. 질문/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454 # 1732454) –