匹配完全限定类名的正则表达式

2024-02-20

在文本中匹配完全限定的 Java 类名的最佳方式是什么?

例子:java.lang.Reflect, java.util.ArrayList, org.hibernate.Hibernate.


Java 完全限定类名(假设为“N”)具有以下结构

N.N.N.N

“N”部分必须是 Java 标识符。 Java 标识符不能以数字开头,但在第一个字符之后可以使用字母和数字、下划线或美元符号的任意组合:

([a-zA-Z_$][a-zA-Z\d_$]*\.)*[a-zA-Z_$][a-zA-Z\d_$]*
------------------------    -----------------------
          N                           N

它们也不能是保留字(例如import, true or null)。如果您想检查合理性只是,以上就够了。如果您还想检查validity,您还必须检查保留字列表。

Java 标识符可以包含任何 Unicode 字母,而不是“仅限拉丁语”。如果您也想检查这一点,请使用 Unicode 字符类:

([\p{Letter}_$][\p{Letter}\p{Number}_$]*\.)*[\p{Letter}_$][\p{Letter}\p{Number}_$]*

或者,简称

([\p{L}_$][\p{L}\p{N}_$]*\.)*[\p{L}_$][\p{L}\p{N}_$]*

The Java 语言规范(第 3.8 节) http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8包含有关有效标识符名称的所有详细信息。

另请参阅此问题的答案:Java Unicode 变量名 https://stackoverflow.com/questions/1422655/java-unicode-variable-names/1422681#1422681

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

匹配完全限定类名的正则表达式 的相关文章

  • 当按下批准或取消按钮时,如何阻止 JFileChooser 关闭?

    我使用 JFileChooser 的 showOpenDialog 方法来打开文件 如何将 ActionListener 附加到批准按钮JFileChooser以及如何停止这个对话框 单击 批准 按钮且侦听器完成后关闭 现在我有 publi
  • SWT - 表查看器 - 隐藏列并从列中获取值

    我正在尝试从表中的数据创建一个数组列表 我需要从可见列中获取值 但我还需要从表中不可见的列中获取值 将 SWT 与表查看器一起使用 我不知道如何不显示表中的列 我也不知道如何通过指定列名从表中提取数据 我一直使用 Swing 所以我一直使用
  • 二维数组列表

    我听说过使用这样的二维数组 String strArr 但是有什么方法可以用列表来做到这一点吗 也许是这样的 ArrayList
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • 正则表达式删除2个字符串之间的所有内容

    我的replaceAll 需要一个正则表达式来删除2 个字符串和字符串本身之间的所有内容 例如 如果我有类似的东西 stackoverflow is really awesome nremove123 n I love it 我试图做一个像
  • 如何将 AES CCM 与 Bouncycastle JCE 提供程序一起使用 - CCMParameters

    是否可以使用JCE来执行CCM 我在互联网上看到很多使用非 JCE bouncycastle 类的示例 特别是 我看到他们调用 init 并传入 CCMParameters 对象 问题是 这个 CCMParameters 对象不是从 Alg
  • spring roo vs appfuse 生成服务/dao 层

    我正在寻找有经验的用户对 spring roo 和 appfuse 的反馈 您认为逆向工程数据库表和生成服务层 dao 层和 jpa 实体哪一个更好 如果我没记错的话 spring roo 目前无法对数据库进行逆向工程 只是一个快速更新 通
  • Java Swing - 在运行时动态切换语言环境

    我了解如何国际化 java 程序 但我有一个问题 我的程序中的语言可以随时切换 但我的程序可以存在多种状态 这意味着它可能会也可能不会打开多个 JLabels JPanel JFrame 等 是否有一个类或方法可以将当前的 GUI 更新为切
  • ffmpeg 用于屏幕捕获?

    所以我有一个小程序来捕获屏幕和计算机麦克风的声音 然后屏幕截图被编码为 ScreenVideo2 声音被编码为 AAC 如何使用 ffmpeg 逐帧混合 然后将混合输出发送到 wowza 媒体服务器 如果用ffmpeg无法完成 您能提供一些
  • Android ImageView未加载

    我正在使用 android imageView 并将图像放入可绘制文件夹中 并将 imageView 源更改为该图像 但它没有在预览面板中显示图像 当我在 android studio 中打开图片时 它显示这样的错误 但我可以在电脑桌面上打
  • 通过 jclouds 使用 AWS (S3) - 如何承担角色

    使用普通身份验证凭据时 我可以执行以下操作 ContextBuilder newBuilder aws s3 credentials keyId key buildView BlobStoreContext class 访问 S3 的 Bl
  • 如何设置按钮的大小?

    我将按钮放在带有 GridLayout 的 JPane 中 然后我用 BoxLayout Y AXIS 将 JPanel 放入另一个 JPanel 中 我希望 GridLayout 中的按钮是方形的 我使用 tmp setSize 30 3
  • 如何从github项目获取jar? [复制]

    这个问题在这里已经有答案了 我想使用官方网站上的 kSoap2 android 库http simpligility github io ksoap2 android index html http simpligility github
  • EJB3 - 通过注入与查找获取 bean - 有什么区别、影响和陷阱?

    我知道有两种获取 EJB 实例的方法 通过 EJB 注释在 servlet 和 EJB 中进行依赖注入 在任何地方通过 Context lookup 进行 JNDI 查找 使用这两种方法有哪些差异 影响和陷阱 它们是一样的吗 依赖注入比查找
  • 如何将java数组列表转换为javascript数组? [复制]

    这个问题在这里已经有答案了 我们如何将 String 对象的 java arraylist 转换为 javascript 数组 这就是我正在做的事情 但我正在寻找更好的方法来做到这一点 我不想迭代数组列表 var myArray
  • 如何使用 Jersey 的内部路由机制来提取类/方法引用?

    我正在运行 Jersey 1 8 应用程序 Jersey 作为 Servlet 运行 我需要写一个小服务程序过滤器给定一个简单的请求 响应 能够确定哪个 REST 资源 方法将响应该请求并从注释中提取值 例如 假设我有以下资源 Path f
  • Java Marine API - 寻找 NMEA 数据

    我的最终目标是从 Adafruit Ultimate GPS NMEA 0183 标准 接收纬度和经度 GPS 信息到我的 Java 应用程序 我正在使用 Java Marine API 来执行此操作 然后 当前位置将与时间戳一起写入数据库
  • 改造 POST java.io.IOException:由 java.io.EOFException 引起的连接上的流意外结束:\n 未找到:

    我已经解决了与此相关的所有问题 但尚未找到适合我的解决方案 我在用着retrofit 2 8 1 and OkHttp 4 5 0 我的服务界面如下所示 public interface MlApiService POST Multipar
  • Fragment中有类似setResult()的方法吗?

    我正在使用一个片段 我收到错误onResult 方法 我需要一个替代方法setResult RESULT OK data 我可以在我的片段中使用它 请帮忙 日历片段 package app pal study samplestudy imp
  • Java Webstart 和 URLConnection 缓存 API

    的描述URLConnection 缓存 API http docs oracle com javase 6 docs technotes guides net http cache html最后一句指出 Java 2 标准版中没有 URLC

随机推荐