Expresión regular para eliminar caracteres especiales en etiquetas JSTL

Estoy trabajando en una aplicación Spring y en la página JSPX. Necesito cargar dinámicamente algunos valores desde la página de propiedades y establecerlos como desplegables usando la etiqueta de opciones. Necesito usar el mismo texto para el valor de las opciones y para la visualización, pero para el valor de las opciones, debo eliminar todos los caracteres especiales.

Por ejemplo, si el valor es tío materno, entonces necesito

<code><option value="MaternalUncle">Maternal Uncle</option>
</code>

Lo que estoy consiguiendo es

<code><option value="Maternal Uncle">Maternal Uncle</option>
</code>

Hay 2 aplicaciones que pueden usar esa página y el archivo de propiedades para cargar depende de la aplicación. Si carga valores para la aplicación 1, los valores se muestran correctamente, el último valor en la aplicación 1 es 'Otros' y no tiene ningún carácter especial. Para la aplicación 2 no recorta espacios en blanco donde el último valor es 'Tío materno'. repOptions en el código es ArrayList con los valores cargados desde el archivo de propiedades. Aquí está mi código:

<code><select name="person" id="person">
      <option value="na">Select the relationship</option>
  <c:forEach items="${repOptions}" var="repOption">
       <option value="${fn:replace(repOption, '[^A-Za-z]','')}">${repOption}</option>
  </c:forEach>
</select>
</code>

La primera aplicación elimina los espacios en blanco ya que este valor es 4to en la lista de 9. Para app2, este es el último valor y la expresión regular no funciona. Si pongo a Maternal Uncle como primera propiedad para app2, entonces esto funciona bien, pero los requisitos son tener la última opción.

<code> <option value="${fn:replace(repOption, ' ','')}">
</code>

está trabajando para espacios en blanco, pero puede haber valores como Hermano / Hermana, por lo que necesito eliminar / también, por lo tanto, estoy usando expresiones regulares.

Respuestas a la pregunta(1)

Su respuesta a la pregunta