/^[a-z|A-Z|0-9\u4e00-\u9fa5-#()\/\\\\\+\/\\\+\→\#()]+$/ 为什么这个正则表达式不能过滤|
时间: 2024-03-30 18:32:31 浏览: 75
这个正则表达式不能过滤|的原因是因为在正则表达式中,|是一个特殊字符,表示逻辑或的意思。如果要匹配|字符本身,需要使用转义字符\进行转义,即\|。所以,如果你想过滤掉|字符,可以将正则表达式修改为/^[a-z|A-Z|0-9\u4e00-\u9fa5-#()\/\\\\\+\/\\\+\→\#()]+$/。这样就可以正确地过滤掉|字符了。
相关问题
articleno.replaceAll("[^A-Za-z0-9-/\\u4e00-\\u9fa5]", "") articleno.replaceAll("[^A-Za-z0-9-\u4E00-\u9FA5]", "")这个两个是一个意思吗
这两个表达式是有一些差别的。在Java中,正则表达式中的特殊字符需要用反斜杠进行转义,所以在第一个表达式中,特殊字符`\u4e00-\u9fa5`被转义为`\\u4e00-\\u9fa5`。而在第二个表达式中,特殊字符`\u4E00-\u9FA5`没有被转义。所以,这两个表达式的含义是相同的,都是用来替换`articleno`字符串中除了字母、数字、连字符和中文字符之外的所有字符为空字符串。
#### 引用[.reference_title]
- *1* *2* *3* [正则表达式学习](https://blog.csdn.net/tianshuwelcome/article/details/83280713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
/^([-\w\u4e00-\u9fa5()]+[-\w\u4e00-\u9fa5()\s]*[-\w\u4e00-\u9fa5()]+|[-\w\u4e00-\u9fa5()]*)$/
这是一个复杂的正则表达式,它的作用是匹配包含中英文、数字、下划线、括号、空格和破折号的字符串。具体来说,它可以匹配以下几种情况:
- 只包含中英文、数字、下划线、括号、空格和破折号的字符串;
- 以中英文、数字、下划线、括号或破折号开头,以中英文、数字、下划线、括号、空格或破折号结尾的字符串;
- 以中英文、数字、下划线、括号或破折号开头,中间包含中英文、数字、下划线、括号、空格或破折号的字符串,以中英文、数字、下划线、括号或破折号结尾的字符串。
但是需要注意的是,这个正则表达式中使用了Unicode字符集,如果在某些环境下不支持Unicode字符集,就会出现类似于“Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \...”这样的错误提示信息。
阅读全文