2016-11-15 1 views
1

RegEx 여러 줄을 함께 그룹화하려고합니다. 다음은 검색하는 텍스트의 예입니다.VB 넷 정규식 일치 복수

Total 
2015 
DOLLAR 
AMOUNT 
Oct-15 DIFF 15-16 
Total 
2015 
COMPANY 1 - WI 
Nuts $ 59.85 $ 0.00 $ 135.45 $ 0.00 $ 135.45 $0.00 
Bolts $ 0.00 $ 0.00 $ 0.00 $ 0.00 $ 0.00 $0.00 
Screws $ 449.20 $ 0.00 $ 541.23 $ 0.00 $ 541.23 $0.00 
Total 7765: $ 509.05 $ 0.00 $ 676.68 $ 0.00 $ 676.68 $0.00 
Company 2 - NE 
Nuts $ 0.00 $ 0.00 $ 0.00 $ 0.00 $ 0.00 $0.00 
Bolts $ 0.00 $ 55.67 $ 542.48 $ 719.82 $(177.34) $777.02 
Total 1876: $ 0.00 $ 55.67 $ 2,960.52 $ 4,265.82 $(1,305.30) $5,854.60 
Company 3 - MN 
Nuts $ 109.52 $ 606.52 $ 858.36 $ 606.52 $ 251.84 $606.52 
Paper $ 0.00 $ 0.00 $ 483.82 $ 0.00 $ 483.82 $678.30 
Gas $ 0.00 $ 0.00 $ 0.00 $ 0.00 $ 0.00 $0.00 
OTHER $ 521.49 $ 0.00 $ 521.49 $ 0.00 $ 521.49 $0.00 
Total 6524: $ 631.01 $ 606.52 $ 3,909.09 $ 606.52 $ 3,302.57 $1,284.82 
Company 4 - IA 
Anything $ 0.00 $ 0.00 $ 0.00 $ 0.00 $ 0.00 $0.00 
Other $ 0.00 $ 0.00 $ 171.90 $ 0.00 $ 171.90 $0.00 
Total 1123: $ 0.00 $ 0.00 $ 171.90 $ 0.00 $ 171.90 $0.00 

회사 이름과 전체 줄을 그룹으로 표시하려고합니다. 내가 여러 줄로 설정하고 사용하면

^(.+?\s-\s.{2})$ 

나는 회사 이름을 얻을 것이다. 나는 또한이 시도 :

^(.+\s-\s\w{2}|Total\s\d{1,5}:.+)$ 
가 일치 확인 할 수있는 방법이 있나요 두 줄을 얻을 것이다 작동하지만 그들은 모두 그룹 1로 통해 오는

? 따라서 그룹 1은 회사 이름이고 그룹 2는 전체 라인이됩니까? 중간에 이런 것을 추가하려고 시도했지만 회사와 총 라인 사이에 다른 수의 줄이 있기 때문에 작동하지 않았습니다.

^(.+\s-\s\w{2})$(^.+$){1,20}^(Total\s\d{1,5}:.+)$ 

(내가 가진하지만 나에게 항상 중간 lines..just 이들의 정확한 수를 나타내는 정확히 기억하지 않습니다.) 회사 이름 사이에 그 라인을 건너 뛸 수있는 방법이 있나요 및 각각의 총 라인과 그룹 1 고객 이름과 그룹 2 총 라인 수 있습니까?

+0

"회사 1"또는 "회사 2"가 아니지만 항상 줄의 처음에서 시작하여 해당 상태에 대해 "- XX"가 포함되어야한다고 추가해야합니다. 나는 그 전체 라인을 원하고 이름과 상태로 나눌 수 있습니다. –

답변

0

나는이에 무엇을 찾고 있었다 얻을 수있었습니다 :

^(.*\s-\s\w{2})$\n(^.+$\n)+?^Total\s(\d{2,5}:.+)$ 

그것은 1 군에서 나에게 고객의 이름을 제공합니다 그룹 3의 전체 라인과 그룹 2를 무시할 수 있습니다. 고마워요.

+0

다음과 같이 변경했습니다.^(. * - \ w {2}) $ \ n (?> ^. + $ \ n) +?^TOTAL \ s (\ d {2,5} :. +) $ 그래서 나는 그룹 1과 그룹 2 만 얻는다. 나는 패턴을 포착하지 않는 것에 대해 배웠다. :) –

0

이 시도 :

^(.+\s-\s\w{2})$|^(Total\s\d{1,5}:.+)$ 

데모 : https://regex101.com/r/8r8ZS0/1

+0

그것은 이전에 가지고 있던 것과 비슷합니다. 문제는 내가 경기를 뒤돌아 볼 때, 내가 어떤 경기를하고 있는지 추적해야한다는 것이다. 가능한 한 반복하여 고객 이름과 총계를 한 번에 얻을 수 있기를 바랍니다. 경기 1에서 그룹 1과 그룹 2를 함께 갖고 싶습니다. 루프가 쉬워졌습니다. –

+0

@J_K_M_A_N 패턴을 캡처하지 않으면 실제로 결과를 정리하는 데 도움이 될 수 있습니다. 이제 결과를 더 잘 읽을 수 있기를 바랍니다. – Ibrahim