내가 일치하는 패턴을 만들고 싶습니다PCRE 여러 옵션과 함께 여러 번 일치하는 방법은 무엇입니까?
"foo | bar"
"baz | foo"
"foo & bar"
"baz ; bar"
즉, "키워드"가 "foo는", "바"와 "바즈"입니다.
적어도 2 개가 표시됩니다.
순서는 중요하지 않습니다.
";", "&"또는 "|" 사이.
이와 일치하도록 만들 수있는 표현식이 있습니까? 키워드의 목록이 실제로 훨씬 더 크다으로
나는 "하드 코딩"일을 찾고 있지 않다, 그런 오히려
(foo|bar|baz)[\|&;](foo|bar|baz)
방법
,이 더 "일반적인"을 할 수 있습니다.
'(? = \ w)'의 역할은 무엇입니까? –
@ TzuryBarYochay : 문자열이 연산자가 아닌 키워드로 시작하도록합니다. (그것없이 패턴은''& foo & bar "'와 같은 것을 받아 들일 것입니다.) – ruakh