Java Regex checking valid chars for a maze -


this check needs ensure lines file begin wall , have @ 1 entrance, @ most, 1 exit, , end wall. split conditions can test them. fails cs = "wwww", "wxw", "wwwwwwwwrwwwwww"

/**   * check ensure lines composed of walls,   * entrance, exit, , space  */ protected boolean invalidmazecharacters(charsequence cs) {      p = pattern.compile("^w+(r??w*|x??|w*|\\s*w*)w+$");     m = p.matcher(cs);     if (!m.matches()) {         return true;     }     return false; } 

try

^w+(r?w*x?|x?w*r?)w+$ 

it's not efficient, can work on improving it. :) also, i'm not sure rules spaces are....

addendum

^w[w\s]*(?:r?[w\s]*x?|x?[w\s]*r?)[w\s]*w$ 

see http://regexr.com?309c6

don't forget, if using java string, double backslashes.

also, fact spaces can appear anywhere leads me suspect non-regex-based function fine, too. can iterate through sequence, counting rs , xs, ignoring spaces, making sure first , last characters ws, , returning false see bad character or r or w.


Comments

Popular posts from this blog

delphi - How to convert bitmaps to video? -

jasper reports - Fixed header in Excel using JasperReports -

python - ('The SQL contains 0 parameter markers, but 50 parameters were supplied', 'HY000') or TypeError: 'tuple' object is not callable -