问题标签 [word-boundaries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
206 浏览

java - 带有单词边界的Java RegEx语法?

首先,我的语法本身不会是脚本的一部分,但它会通过表单输入进行解析——因此任何指向 Java 代码的“现有”解决方案本身都不会适用。

好的,这就是我需要做的:我需要能够输入如下术语:

“这是你的机场,这是你的车。” 以只有单词“airport”或“airports”匹配的方式进入输入字段。因此,不应匹配 '99airport' 或 'airport99' 之类的东西。我很接近!

如果我在测试站点中将上述内容作为 RegEx 输入:

http://www.ocpsoft.org/tutorials/regular-expressions/java-visual-regex-tester/#!;t=123-45-6789%0A9876-5-4321%0A987-65-4321%20(攻击)%0A987-65-4321%20%0A192-83-7465&r=(%3Fm)%5E(%5Cd%7B3%7D-%3F%5Cd%7B2%7D-%3F%5Cd%7B4%7D)%24&x =找到%20good%20SSN%3A%20%241

那么,确实,'99airport' 不匹配,因为开始使用 Word Boundary identifier \b;但是,我不知道如何将 \b 放在单词的结尾,这样 'airport99' 也不匹配。我尝试了几件事,但没有运气。我认为这是需要弄清楚的 [] 周围的语法。

并且请不要太在意需要匹配或不匹配的内容——这些只是随机的词。目前,如果我的输入有“airport99”,它确实会匹配,但如果我能找到解决方案,它不应该。

谢谢!

0 投票
2 回答
173 浏览

javascript - 查找 pec+ 的正则表达式模式

我正在尝试匹配pec+短语中的“单词”

我找不到 pec+

我已经尝试了该模式\bpec\+\b,但没有匹配项。

0 投票
1 回答
54 浏览

java - What are the most efficient ways to write regex with boundary matching in Java?

So I found out that the word boundary works great to make sure that exactly that word is being found within the text and that we don't cut other words if they contain just parts of this word, however I noticed it works bad at the String start and end.

So ideally I would expect a regex like this also work well in string start and end, because that's where the word also starts/ends:

However it turned out I had to transform the regex like this to make sure it works well also for string start and end:

I haven't discovered any side effects of using the latter regex yet, however I would like to know if there is any special boundary or how to write the boundary more efficiently to make it less ugly and less counter-intuitive.

Does anybody know better ways? Perhaps you can also improve my suggested regex as well in case you are aware of any problems using it.

0 投票
2 回答
1466 浏览

mysql - 在 mysql LIKE 查询中获得最匹配的结果

假设我有一张这样的桌子:

桌子:businesses

我想best matched result在我搜索名称中的一些单词时得到。例如我想搜索:Wong Cackes Shop这是 3 个单词。
我将此查询用于上述搜索:

我希望record 3成为第一个匹配的结果,但结果是:

  1. Carolyn Wong Cakes//2匹配单词
  2. Cupcaking Cackes Shop//2匹配单词
  3. Wong Cackes Shop//3匹配单词

如何在其他结果之上搜索单词并获取最匹配结果的记录?

像这样:

  1. Wong Cackes Shop//3匹配单词
  2. Cupcaking Cackes Shop
  3. Carolyn Wong Cakes

编辑:我的word-boundariesLIKE 方法也有问题。它不会得到以 3 个单词之一开头或结尾的结果。因为 例如:spaces//不匹配匹配//不匹配LIKE '% word %'

Wong[space]
[space]Wong[space]
[space]Wong

谢谢。

0 投票
2 回答
1052 浏览

oracle - Oracle regexp_like 字边界多字解决方法

如您所知,正则表达式的 Oracle POSIX 实现不支持单词边界。这里建议一种解决方法: Oracle REGEXP_LIKE and word boundary

但是,如果我愿意,它不起作用,例如选择所有 4 个字符串。考虑一下,例如:

这显然只选择了第一次出现。我不知道如何在 Oracle 世界中执行此操作,尽管通常它只是(\b)[\S]{4}(\b). 问题是大多数 woraround 依赖于一些不存在的功能,如环视等。

0 投票
1 回答
375 浏览

javascript - JavaScript 正则表达式中的非捕获组匹配空白边界

我有这个功能可以找到整个单词并替换它们。它识别空间但不应该替换它们,即不捕获它们。

然后我有以下字符串:

结果应该是这样的:

并不是:

我得到后者。

我怎样才能让它识别空间但在替换单词时忽略它?

起初这似乎是重复的,但我没有找到这个问题的答案,这就是我问它的原因。

谢谢

0 投票
1 回答
574 浏览

javascript - Javascript 正则表达式 UTF-8

我知道 JavaScript 的 RegEx 仅支持 ASCII 字符串上的 \b 字边界类。但是我能做些什么来让它与 UTF-8 字符一起工作吗?

我在 stackoverflow 上阅读了几篇关于它的文章,并尝试了一些方法,比如这里描述的方法。

但我仍然无法让它工作。

我有一个页面询问用户他的名字。

在文本框中输入后,将显示回复,使用文本框中的部分值来问候用户,而忽略它的其他部分。

如果用户输入“我的名字是约翰”,回复将是“你好,约翰!很高兴认识你!”。

这在英语中可以正常工作,但是该页面将使用几种不同的语言,这些语言使用诸如 é á ó ã ñ 之类的字符...当这些字符不是名称的一部分时,如何使其忽略这些字符?

这就是我正在使用的:

我试过.replace(/á|é|ó|\b(my|name|is)\b/g, '') 但是当它们是单词/名称的一部分而不是当它们被用作单个单词时(这就是我想要的),这会删​​除这些字符。

按照该链接上的示例,我还尝试了:

但它仍然无法按预期工作......

我怎样才能解决这个问题?

0 投票
5 回答
412 浏览

c# - 当单词以方括号等特殊字符开头或结尾时,单词边界不匹配

我想用另一个数字替换作为方括号的字符串。我正在使用正则表达式替换方法。

样本输入:

这是[测试]版本。

所需输出(将“[test]”替换为 1.0):

这是1.0版本。

现在正则表达式没有替换特殊字符。以下是我尝试过的代码:

input 和 stringtoFind 变量中可能有任何特殊字符。

0 投票
0 回答
41 浏览

mysql - Word 边界在 MySQL 8.0.16 REGEX 中不起作用?

我很困惑...我使用的是 MYSQL 8.0.16,根据手册,一个简单的单词边界 \b 应该可以工作。但它不会工作...

我的查询:

我正在使用 mySQL 8.0.16,我还在 8.0.18 上对其进行了测试,结果相同......

帮助表示赞赏

干杯

0 投票
1 回答
296 浏览

javascript - Javascript RegEx Safari 问题

这是一个支持非拉丁字母的单词边界正则表达式,它在 Chrome 中有效,但在 Safari 中无效。任何替代解决方案?

谢谢