Czytam plik zawierający wiele informacji jak pokazano poniżej:regex wykluczyć zdanie, które zawiera określone słowo w java
type dw_3 from u_dw within w_pg6p0012_01
boolean visible = false
integer x = 1797
integer y = 388
integer width = 887
integer height = 112
integer taborder = 0
boolean bringtotop = true
string dataobject = "d_pg6p0012_14"
end type
type dw_3 from u_dw within w_pg6p0012_01
integer x = 1797
integer y = 388
integer width = 887
integer height = 112
integer taborder = 0
boolean bringtotop = true
string dataobject = "d_pg6p0012_14"
end type
zrobiłem regex: (?i)type dw_\d\s+(.*?)\s+within(.*?)\s+(?!boolean visible = false)(.*)
chcę wyodrębnić wszystkie ciągi, które nie zawierają "boolean visible = false" , ale mój zwraca wszystkie. Próbowałem również wielu podobnych stanowisk na stosie, ale wynik jest podobny do mojego, sugeruj sposób.
rozwiązanie: (?i)type\\s+dw_(\\d+|\\w+)\\s+from\\s+.*?within\\s+.*?\\s+(string|integer)?\\s+.*\\s+.*\\s+.*\\s+.*?\\s+.*?\\s+.*?\\s*string\\s+dataobject\\s+=\\s+(.*?)\\s+end\\s+type")
to działa dobrze na sprawdzający regex ale gdy próbowałem go na java to ciągle działa bez podania wyjście
Kiedy mówisz „chcą, aby wyodrębnić wszystkie sznurki”, masz na myśli wydobyć wszystko od typu i rodzaju DW _... końcowego? –
Tak, istnieje wiele takich wyrażeń, z których muszę wyodrębnić tylko te wyrażenia, które nie zawierają "boolean visible = false" – SOP