作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用户提供的字符串,然后我需要将其转换为正则表达式,其中将其字符串视为文字,然后在末尾附加一个预先编写的正则表达式。
本质上,一种说法是“用户提供了什么,然后是这个模式”。
这让我觉得我可能需要清理用户提供的字符串,以转义元字符。
例如,这是我尝试过的\\ Replace "\" with "\\"
String rE = userText.replaceAll("\\", "\\\\");
\\ Replace . with \.
rE = rE.replaceAll(".", "\\.");
但是,当匹配\转义时,这会失败并显示以下消息
Execution aborted because of unhandled exception:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^ at java.util.regex.Pattern.error(Pattern.java:1725)
at java.util.regex.Pattern.compile(Pattern.java:1478)
最佳答案
使用 Pattern.quote
将用户提供的字符串引用为文字模式的方法。
关于java - 将用户提供的字符串转换为文字字符串,以附加预定义的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931040/
我是一名优秀的程序员,十分优秀!