طريقة سهلة للهروب من فصول الأحرف Regex في سلسلة تعسفية؟

StackOverflow https://stackoverflow.com/questions/4093330

  •  28-09-2019
  •  | 
  •  

سؤال

ROWFILTER.REGEXFILTER يبدو وكأنه وسيلة سهلة لتصفية JTable الخاص بي.

أرغب في السماح للأشخاص بكتابة مرشحات في واجهة المستخدم الرسومية التي هي نص مستقيم (أي لا إعادة تعبيرات) ثم التصفية بناءً عليها. مثله:

RowFilter<TableModel, Object> filter = RowFilter.regexFilter(".*" + pUserFilterString + ".*", pColumn);

سيكون هذا رائعًا إذا نقل المستخدم بعناية نص التصفية لجعله تعبيرًا منتظمًا صالحًا ، لكنهم لن يفكروا في التعبيرات العادية - مجرد نص. إذا كانت هناك طريقة سهلة للقيام بذلك ، أود أن أهرب من أي شيء في سلسلةهم لن يعامل حرفيًا بواسطة محلل Regex (على سبيل المثال "*" -> "*").

هل هذا ممكن / يستحق كل هذا العناء أم يجب أن أذهب إلى اتجاه آخر مع الكود الخاص بي؟

هل كانت مفيدة؟

المحلول

وتسمى هذه العملية اقتباس. يمكنك الحصول على السلسلة التي هربت عن طريق الاتصال ...

String escapedString = Pattern.quote(inputString);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top