괄호 안에없는 숫자를 찾을 수있는 정규 표현식이 필요합니다. 예 ABCD (1) (35) (DF)숫자 검색을위한 정규 표현식
그것은 단지 1
이 매우 복잡 볼 것인가? 나는 노력했지만 행운이 없었다. 어떤 도움
괄호 안에없는 숫자를 찾을 수있는 정규 표현식이 필요합니다. 예 ABCD (1) (35) (DF)숫자 검색을위한 정규 표현식
그것은 단지 1
이 매우 복잡 볼 것인가? 나는 노력했지만 행운이 없었다. 어떤 도움
이 매우 어렵다하지만이 같은 아마 할 것입니다 :
^(?:\()(\d+)(?:[^)])|(?:[^(0-9]|^)(\d+)(?:[^)0-9]|^)|(?:[^(])(\d+)(?:\))$
문제는 (123
, 123)
일치하는 것입니다 또한 비 괄호 문자 1
사이의 숫자 2
로 문자열 123
일치하지 및 3
. 또한 문자열의 시작과 끝 부분에 몇 가지 중요한 경우가있을 수 있습니다.
제 제안은이를 위해 정규식을 사용하지 않는 것입니다. 어쩌면 숫자와 일치하는 정규식을 사용하고 캡처 정보를 사용하여 주변 문자가 괄호가 아닌지 확인하십시오.
정규 표현식에 대한 감사는 다음과 같습니다
^[a-z]+ ([0-9]+) \([0-9]+\) \([a-z]+\)$
결과는 정규 표현식의 첫 번째 (유일한) 일치하는 그룹입니다.
전체 행의 내용 인 경우에만 정규 표현식이 일치하지 않아야하는 경우 ^
및 $
을 제거하고 싶을 수 있습니다. [a-zA-Z]
또는 [[:alpha:]]
을 사용할 수도 있습니다. 이것은 사용하는 정규 표현식 엔진과 일치시킬 콘텐츠에 따라 다릅니다.
예 펄 코드 :
if (m/^[a-z]+ ([0-9]+) \([0-9]+\) \([a-z]+\)$/) {
print("$1\n");
}
귀하의 질문에 가능한 좋은 대답은 (당신이 예를 들어 당신이 원한다면, 당신의 표현의 일반적인 형식에 대해 아무 말도하지 않았다 있도록 충분한 정보가 포함되어 있습니다 정수 또는 부동 소수점과 일치)
자세한 내용은 Regular Expression Library을 참조하십시오.
이 사이트는 많은 도움이 될 수 있습니다.
만족스럽지 않으므로 -1을 주셔서 감사합니다. –
SE는 Q/A 사이트입니다. 이것은 Q/"A 사이트가 아닌 다른 사이트로 연결되는 링크"입니다. 또한, 당신이 준 링크는 "괄호로 묶이지 않은 숫자와 어떻게 일치합니까?"라는 그의 질문에 대답하지 않습니다. 그 중 어딘가에서 숫자와 일치하는 203 개의 정규 표현식 만 제공합니다. 그는 그 (것)들을 전부 통과하고 아마 응답이 거기에서다는 것을 알아 내기 가정된다? – CanSpice
어떻게
/(?:^|[^\d(])(\d+)(?:[^\d)]|$)/
어떻습니까?이것은 문자열의 시작, 또는 숫자 또는 여는 괄호 아닌 문자가 앞에
이
((?:^|[^\d(])
)
는 말까지 성공입니다 숫자의 문자열 (\d+
)과 일치 문자열 또는 숫자 나 닫기 괄호 아닌 문자 ((?:[^\d)]|$)
)
쉬운 용액 제 원하지 않는 값을 제거하는 것이다
,174을my $string = "abcd 12 (35) (df) 2311,22";
$string =~ s/\(\d+\)//g; # remove numbers within parens
my @numbers = $string =~ /\d+/g; # extract the numbers
사용중인 프로그래밍 언어는 무엇입니까? 그들은 모두 정규 표현식을 약간 다르게 사용합니다. – Chriszuma
시도한 것을 게시하고 수정합니다. –
Perl과 관련이 있어야합니다. 내가 사용하고있는 편집장에 따르면. 나는 내가 사용했던 예를 찾아서 게시 할 것이다. – jdross