Do not use regular expressions in disorder
Compare the following two regular expressions:
(? :.*? (? : \ S |,) +) * No \ s + Air \ s + conditioning .*?
(? :.*? (? : \ S |,) + )? No \ s + Air \ s + conditioning .*?
The difference is that * and? The difference is that the performance of the word is much different: the former is 35699.334; the latter is 108.686.
Complete Test code:
String test_value = "ABS, traction control, front and side airbags, ISOFIX child seat anchor points, no air conditioning, electric windows, \ r \ nw.ically operated door mirrors "; double Start = system. nanotime (); pattern = pattern. compile ("^ (? :.*? (? : \ S |,) +) * No \ s + Air \ s + conditioning. * $ "); asserttrue (pattern. matcher (test_value ). matches (); Double end = system. nanotime (); logger.info ("took {} micros", (end-Start) // (1000 ));
Two minutes later, the program is still running and the CPU has been blocked:
Do not use regular expressions in disorder