regex - 如何构建正则表达式来搜索包含非字母数字字符的字符串?

标签 regex

我想要搜索包含任何特殊字符(例如字母数字字符)的字符串。 /[^a-zA-Z0-9]/ 搜索不包含字母数字字符的字符串。但我不想要这样。我想仅使用字母数字字符进行过滤,例如 á。这样它可以与álgebra匹配,但不与algebra匹配。我该如何构建它?

最佳答案

您似乎想要匹配包含 ASCII 字母以外的任何字母的字母数字字符串。

你可以使用

^(?=.*(?![A-Za-z])\p{L})[\p{L}0-9]+$

请参阅regex demo .

详细信息

  • ^ - 字符串开头
  • (?=.*(?![A-Za-z])\p{L}) - 必须至少有一个字母不是 ASCII 字母
  • [\p{L}0-9]+ - 一个或多个任意 Unicode 字母或 ASCII 数字
  • $ - 字符串结尾。

关于regex - 如何构建正则表达式来搜索包含非字母数字字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63828773/

相关文章:

php - 反转 "English"字造句

java - 将用于跳过缺失信息的正则表达式从 python 转换为 java-7

regex - 匹配除数字正则表达式之外的所有内容

regex - 查找并替换多对字符

python - 分割包含空格 block 的字符串

java - Scanner.hasNext(模式模式)未按预期工作

python - token 化后如何提取 http 或 https?

java - 用动态内容中的另一个字符串替换子字符串

Javascript:正则表达式删除空格?

regex - R split on delimiter (split) 保留分隔符 (split)