将 Javascript 正则表达式转换为 Java 语法

2023-12-19

我知道 regEx 在各种语言中都很常见......但我在编写 Java 语法时遇到了麻烦。 我有一个用 JS 编码的正则表达式;

if((/[a-zA-Z]/).test(str) && (/[0-9]|[\x21-\x2F|\x3A-\x40|\x5B-\x60|\x7B-\x7E]/).test(str))         
return true;

我如何在 Java 中编写相同的内容?

我已经进口了

import java.util.regex.Matcher;
import java.util.regex.Pattern;

只是补充一下,根据我的尝试,它说 \x 是无效的转义字符。


更改前导和尾随'/'字符到'"',然后替换每个'\' with "\\".

与 JavaScript、Perl 和其他脚本语言不同,Java 没有特殊的正则表达式语法。相反,它们(通常)使用 Java 字符串文字来表达。但'\'是 Java 字符串文字中的转义字符,因此每个'\'在原始正则表达式中必须用第二个转义'\'。 (如果你在正则表达式中有一个反斜杠字符,你最终会得到"\\\\"在 Java 字符串中!!)

对于 Java 新手来说,这有点令人困惑/令人畏惧,但它是完全合乎逻辑的。只要记住你使用的是 Java字符串字面量来表达正则表达式。


然而,正如 @antak 所指出的,Java 和 JavaScript 实现的正则表达式语言之间存在各种差异。因此,如果您采用任意 JavaScript 正则表达式并将其音译为 Java(如上所述),它可能不起作用。

以下是一些总结差异的参考资料。

  • https://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines https://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines
  • https://gist.github.com/CMCDragonkai/6c933f4a7d713ef712145c5eb94a1816 https://gist.github.com/CMCDragonkai/6c933f4a7d713ef712145c5eb94a1816
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Javascript 正则表达式转换为 Java 语法 的相关文章

随机推荐

  • 如何在delphi中一次将不同字体格式的文本绘制到画布上?

    我一直在使用DrawText满足我所有的 矩形文本 输出需求 但是我没有找到一种绘制字符串的方法 例如 将每个其他单词加粗或使用不同的颜色 或者更糟糕的是 为所述随机选择的单词使用不同的背景 据我所知 可能没有一个程序可以做到这一点 我可能
  • Android Spring Jackson 映射:NoClassDefFoundError

    我试图让我的 Android 应用程序作为 REST 客户端运行 基本上我遵循了这个例子 https github com SpringSource spring android samples tree master spring and
  • 使用概念是否允许在成员函数上使用 decltype

    我来到know https stackoverflow com a 74024419一个班级的X具有名为的成员函数func c 标准不允许我们写decltype X func 因此我预计下面给出的程序会产生一个错误 类似于invalid u
  • 如何在 mac 中使用 Exiftool 添加 GPS 纬度和经度(如何在 jpeg 中编辑元数据)

    我有一堆从 FLIR 相机获得的 jpeg 图像 除了这些图像之外 我还收集了 GPS 坐标 现在我正在尝试将 GPS 纬度和经度获取到图像的元数据中 我用 R 编程语言编写了一个程序 用于查找每个图像相对于时间的 GPS 位置 只要 GP
  • 像 jQuery 插件一样使用 GWT 小部件?

    我可以像 jQuery 插件一样使用 Google GWT 小部件吗 例如 Gwt a css selector mywidget some prefs 也许你正在寻找类似的东西GQuery http code google com p g
  • OpenCV 轮廓矩?

    什么是轮廓矩 有人可以用简单的非数学术语解释这一点吗 可能有一个例子吗 官方的解释是 对轮廓中所有像素进行积分 我不知道什么整合 轮廓矩可以用来做什么 黑色 0 白色 1 的黑白图像的 0 度矩 这只是像素的总和 即白色像素的数量 x 轴和
  • 为什么 C# 中的堆栈大小正好是 1 MB?

    如今的 PC 拥有大量物理 RAM 但 C 的堆栈大小对于 32 位进程仅为 1 MB 对于 64 位进程仅为 4 MB C 中的堆栈容量 https stackoverflow com questions 823724 stack cap
  • 在 Android Widget 上处理多个按钮点击

    I 看到这个话题 https stackoverflow com questions 2082998 how to implement a button on an android widget并实施IntentService正如所描述的
  • 持久 stty 设置?

    目前 我可以通过执行禁用终端输出挂起 恢复 功能 CTRL S和CTRL Q废话 stty ixon 不幸的是 这不是永久性的 我需要设置这个选项每次我发射xterm 是否有一个可以编辑的文件可以记住我的设置并在重新启动和重新启动时保持永久
  • 播放动画一次而不是循环三个.js

    我已将搅拌机 JSON 动画导出到 THREE js 中 一切正常 但我只想播放动画一次并停止而不是循环播放动画 老问题 但如果有人需要它 解决方案是设置animation setLoop THREE LoopOnce let objLoa
  • 在 bash 中生成虚拟文件

    我想在 bash 中生成虚拟文件 内容并不重要 如果是随机的那就太好了 但所有相同的字节也是可以接受的 我的第一次尝试是以下命令 rm dummy zip touch dummy zip x 0 while x lt 100000 do e
  • 为什么我不能在 if 语句内强制转换对象?

    我在这里没有看到这个确切的问题 这让我感到惊讶 以下内容将无法编译 public int compareTo Object o if this order lt Category o order return 1 else if this
  • 如何测试写入标准输出的代码?

    如何在 CUnit 中为打印到的函数编写测试stdout 验证其输出 要测试的示例函数 void print printf Hello world 它的单元测试应该以某种方式验证 Hello world 是否已打印到控制台 void tes
  • 如何在android firestore中根据不同的if条件实现多个order by?

    Android中如何实现多个order byFirestore基于不同的if条件 我想根据不同的字段值对我的 firestore 项目进行排序 像这样 Query query firestoredb collection items doc
  • Jenkins git 插件自签名证书

    我目前正在尝试让 Jenkins 构建托管在 GitHub 企业存储库中的项目 我们为 GitHub 服务器使用自签名证书 这会导致一些问题 我能够解决的大部分问题 git 命令行 获取 PEM 格式的证书并教 git 使用 config
  • 为什么 Spark 在本地模式下会失败并显示“无法获取广播_0 的广播_0_piece0”?

    我正在运行此代码片段来对点的 RDD 进行排序 对 RDD 进行排序并从给定点获取 K 最近的点 def getKNN sparkContext SparkContext k Int point2 Array Double pointsRD
  • 如何在 Android Studio 中禁用对项目的 C/C++ 支持?

    我时常会犯这样的错误 尝试在 Android Studio 项目中启用 C C 支持 我想我可能喜欢使用 C C 但我忘记了 至少在我的系统上 我从来没有能够让它工作过 即使在下载了 NDK 库之后也是如此 我已经四处寻找如何从项目中删除
  • 多项选择

    您好 我需要获取下拉框中选择的所有值 请参阅示例
  • Java 正则表达式解析任意数量的 Markdown 样式链接

    我正在尝试解析字符串以查找任何出现的 Markdown 样式链接 即 text link 我能够获取字符串中的第一个链接 但如果我有多个链接 我将无法访问其余链接 这是我尝试过的 你可以运行它ideone http ideone com B
  • 将 Javascript 正则表达式转换为 Java 语法

    我知道 regEx 在各种语言中都很常见 但我在编写 Java 语法时遇到了麻烦 我有一个用 JS 编码的正则表达式 if a zA Z test str 0 9 x21 x2F x3A x40 x5B x60 x7B x7E test s