在正则表达式中匹配带有井号 (#) 符号的单词

2024-01-07

我有正则表达式来检查某些文本是否包含单词(忽略边界)
String regexp = ".*\\bSOME_WORD_HERE\\b.*";但是这个正则表达式返回false当“SOME_WORD”以#(主题标签)开头时。

Example, without #   
String text = "some text and test word";
String matchingWord = "test";
boolean contains = text.matches(".*\\b" + matchingWord + "\\b.*");
// now contains == true; 

But with hashtag `contains` was false. Example:
text = "some text and #test word";
matchingWord = "#test"; 
contains = text.matches(".*\\b" + matchingWord + "\\b.*");
//contains == fasle; but I expect true    

The \b#模式匹配 a#前面有一个单词字符:字母、数字或下划线。

如果您需要匹配#前面没有单词 char,请使用否定后向查找(?<!\w)。同样,要确保尾随\b如果存在非单词字符则匹配,使用(?!\w)负向前瞻:

text.matches("(?s).*(?<!\\w)" + matchingWord + "(?!\\w).*");

Using Pattern.quote(matchingWord)如果你的matchingWord可以包含特殊的正则表达式元字符。

或者,如果您打算在空格或字符串开头/结尾之间匹配搜索词,则可以使用(?<!\S)作为初始边界和(?!\S)作为尾随的

text.matches("(?s).*(?<!\\S)" + matchingWord + "(?!\\S).*");

还有一件事:.* in the .matches不是最好的正则表达式解决方案。正则表达式就像"(?<!\\S)" + matchingWord + "(?!\\S)" with Matcher#find()将以更优化的方式进行处理,但您需要初始化Matcher对此的对象。

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

在正则表达式中匹配带有井号 (#) 符号的单词 的相关文章

  • Stream#limit 返回的元素是否可以少于预期?

    如果流s下面至少有n元素 流在什么情况下sLimit可能少于n元素 如果有的话 Stream sLimit s limit n 提问原因 在这个答案 https stackoverflow com a 28082107 829571 我读到
  • 如何使用 JAVA 和 ADB 命令检查 Appium 中键盘是否打开

    我正在尝试检查 Android 默认键盘是否打开 我没有找到任何可以在 Appium 中使用 JAVA 和 ADB 命令检查键盘的内容 我发现这个 ADB 命令可以检查键盘是否打开 adb shell dumpsys input metho
  • MPAndroidChart:组合图表

    我在用MPAndroidChart 库 https github com PhilJay MPAndroidChart 我想用CombinedChart创建这样的图表 那可能吗 我尝试了一下 但似乎不起作用 因为 这些条目没有按我的预期工作
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • 在 Java 中查询 XML 的最简单方法

    我有带有 XML 的小字符串 例如 String myxml
  • 用于在子字符串中用破折号替换空格的正则表达式。

    我一直在努力寻找一种方法 可以用字符串中的破折号替换空格 但只能替换字符串特定部分内的空格 Source ABC This is a sub string DEF 我对正则表达式的尝试 s g 如果我使用正则表达式来匹配空格并替换 我会得到
  • 协程和 Firebase:如何实现类似 Javascript 的 Promise.all()

    在 Javascript 中 您可以同时启动两个 或更多 异步任务 等待它们完成 然后执行某些操作 继续 const firstReturn secondReturn await Promise all firstPromise secon
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 这个finally子句包含close()调用的原因是什么

    我正在学习在线java课程 使用 Java 编程简介 http math hws edu javanotes index html 在 I O 章节中 引入了以下代码 顺便说一下 在本程序的末尾 您将发现我们第一个有用的 try 语句中的
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 我想找到 C# 代码中所有后面没有括号的 if 语句。通过正则表达式

    我想找到所有if声明和for后面没有大括号的语句 当你在一个文件中写入一行时if声明您大多不会将其括在大括号中 所以我想找到所有这些if and for声明 请帮忙 就像我想捕捉这个声明 if childNode Name B return
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • servlet 如何获取 servlet 之外的文件的绝对路径?

    我们一直在使用 System getProperties user dir 来获取属性文件的位置 现在它已经部署在 Tomcat 上 通过 servlet 系统调用将位置指定为 tomcat 而不是属性文件所在的位置 我们如何动态调用属性文
  • 如何在jpa中共享EntityManagerFactory

    我是 jpa 的新手 这是场景 我正在开发一个 Web 应用程序 其中 多个用户可以登录 当 user1 注销时 我正在使用下面的代码 public static void closeEntityManagerFactory if enti
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • 如何使用 AEM 解析 org.apache.http.ssl?

    最终 我尝试在 Java 代码中使用 AWS S3 库来通过 AEM 启用服务器端 S3 上传 但在安装依赖项和 或由 AEM 识别时遇到了问题 每次我添加新的依赖项时 都会弹出五个问题 在我尝试构建的这个包中 这是我看到的错误 The i
  • 在测试期间调用预定方法[重复]

    这个问题在这里已经有答案了 我正在使用 Maven 开发 SpringBoot 应用程序 我有一个班级 Component有方法的注释m与 Scheduled initialDelay 1000 fixedDelay 5000 注解 这里f
  • 在 Vavr 中结合任一者?

    我有几个Vavr https www vavr io Either https www vavr io vavr docs either的 我想调用一个函数Right每个 Either 的值 例如 Either

随机推荐

  • Topshelf超时问题

    我们正在使用 Topshelf 来托管服务 在启动服务之前 我们正在调用数据库来加载大量数据 因此 在启动服务时 我们收到以下错误 Start Service failed with return code 7 ServiceRequest
  • 启动 Rails I18n 和 url 助手似乎会混淆 locale 和 id

    我刚刚开始尝试更新我们的 Rails 3 2 应用程序以实现国际化 我在路线中有一个可选范围 例如 范围 locale 区域设置 en es zh HK de fr do 正如所描述的http guides rubyonrails org
  • 用 JavaScript 编写的 Java 解析器

    我正在寻找用 JavaScript 语言编写的 Java 源代码解析器的实现 你知道任何 看一下ANTLR http www antlr org 它可以将 Javascript 作为目标 Java 1 5 语法位于http www antl
  • 从 Playstore 下载后,Flutter Android 应用程序陷入白屏

    我已经在游戏商店上发布了一个应用程序 它们在所有设备上运行良好 我在应用程序上添加了 Admob 并在 Play 商店上更新了我的应用程序 它们卡在灰屏中 我尝试了很多代码来修复 但是问题但没有解决 最后 我必须发布我的旧代码 但现在它们也
  • 如何调试来自本机代码的 AccessViolationException

    我正在编写托管代码 并且正在将托管绑定 qt4dotnet 用于非托管库 Qt 有时 我会从 Qt 的某个地方收到 AccessViolationException 但我不知道如何调试它 我什至没有得到比托管 非托管边界更远的堆栈跟踪 这意
  • NetBeans 7.0.1:尚未授权访问 Tomcat 服务器

    我是一个初学者 刚刚开始使用 JSP 但一直停留在起点 请帮帮我 我已经下载了catalina bat and setclasspath bat在那里适当的位置 tomcat bin 但仍然收到授权错误 我看过类似的帖子并编辑了我的tomc
  • 加载共享库时出错

    谢谢你们回答我之前的问题对函数的未定义引用 https stackoverflow com questions 7433984 undefined reference to function declared in h file c lan
  • 使用Elasticsearch作为时间窗口存储的性能问题

    我们使用弹性搜索几乎作为缓存 存储在时间窗口中找到的文档 我们不断插入大量不同大小的文档 然后使用文本查询结合日期过滤器在 ES 中进行搜索 这样当前线程就不会获取它已经见过的文档 像这样的事情 字 1 与字 2 或 字 3 与字 4 与插
  • Karate - 验证存储在不同文件中的 json 响应

    我需要验证存储在两个不同文件中的 2 个 json 响应 我正在阅读它们并进行比较 但我收到一个错误reason all key values did not match并且几乎没有不匹配的元素 仅当我将 json 存储在文件中并读取功能文
  • 如何将 Java 与 Tally 应用程序集成 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要将我的 Java Web 应用程序与 Tally 软件集成 是否可以 请提供一些想法 嗯 Tally 不支持 SOAP 但支持基本的
  • Django:批量操作

    商业 我遇到了一个问题 当使用 Django ORM 操作大型数据集时 规范的方法是操作每个元素 但当然这种方式效率很低 所以我决定使用原始 SQL 物质 我有一个形成 SQL 查询的基本代码 它更新表的行并提交它 from myapp i
  • 生成具有给定(数字)分布的随机数

    我有一个文件 其中包含不同值的一些概率 例如 1 0 1 2 0 05 3 0 05 4 0 2 5 0 4 6 0 2 我想使用这个分布生成随机数 是否存在处理此问题的现有模块 自己编码相当简单 构建累积密度函数 生成随机值 0 1 并选
  • Delphi - 检查内存是否“按时”释放

    我有一个 GUI 应用程序doesn t有内存泄漏 我已经通过 FastMM 在多次测试周期中证实了这一点 在一个特定客户端的服务器上 我遇到随机崩溃 服务器规格与我们其他客户的规格非常一致 并且我们实际上已经在各种硬件上进行了尝试 程序使
  • 检查变量是否以“http”开头

    我确信这是一个简单的解决方案 只是还没有找到我所需要的 使用 php 我有一个变量 source 我想检查 source 是否以 http 开头 if source starts with http source a href source
  • 子类是否从超类继承私有实例变量

    子类会继承私有字段吗 https stackoverflow com questions 4716040 does subclasses inherit private fields 这个问题解决了同样的问题 但我不太明白这如何满足下面 看
  • 如何在android sqlite中向文本数据类型添加主键? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以在android数据库中的文本字段上应用主键 https stackoverflow com questions 7591492 is it possible to apply primary
  • Sqlite在创建表中设置默认值

    我写了类似的东西 create table if not exists QuickTest id integer primary key NOT NULL a TEXT DEFAULT 0 b TEXT c TEXT 我在 0 上遇到错误
  • 尝试静默命令时 Dos2unix 不工作

    我是这样从 Python 中调用 dos2unix 的 call dos2unix file1 shell True stdout PIPE 然而 为了使 Unix 输出保持沉默 我这样做了 f null open os devnull w
  • 如何找到完整无向图中的哈密顿循环数?

    有人可以解释如何在完整的无向图中找到哈密顿循环的数量吗 维基百科说 http en wikipedia org wiki Hamiltonian path Properties公式是 n 1 2 但是当我用这个公式计算时 K3只有1个周期
  • 在正则表达式中匹配带有井号 (#) 符号的单词

    我有正则表达式来检查某些文本是否包含单词 忽略边界 String regexp bSOME WORD HERE b 但是这个正则表达式返回false当 SOME WORD 以 主题标签 开头时 Example without String