问题标签 [word-boundary]

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 投票
3 回答
2162 浏览

php - PHP 正则表达式字边界排除下划线_

我正在使用正则表达式单词边界\ b,并且我正在尝试匹配foo以下内容$sentence,但结果不是我需要的,这underscore正在杀死我,我希望下划线成为单词边界,就像连字符或空格一样:

预期的:

我的代码:

0 投票
1 回答
136 浏览

regex - 正则表达式:单词边界

我必须搜索包含大写字母或数字的单词。

我使用\b[^ ]*[A-Z0-9]+[^ ]*\b, 但是不是[^ ]我想使用[^\b], 但这会选择所有短语...

ThisisSometext, that hass0menUm8ers, likeBoeing-380orRNA-78.ThatisGREAT!

0 投票
1 回答
603 浏览

regex - 正则表达式负前瞻和单词边界从捕获组中删除第一个字符

我试图捕获字符串中的每个单词,除了“and”。我还想捕捉像 *this* 这样被星号包围的单词。我使用的正则表达式命令大部分都有效,但是当它捕获带有星号的单词时,它会遗漏第一个单词(因此 *this* 只会捕获 this* )。这是我正在使用的正则表达式:

当我删除最后一个单词边界时,它将捕获所有 *this* 但不会遗漏任何 'and' 。

0 投票
2 回答
106 浏览

java - 边界无法在段落中找到特定关键字

我想从一段中找到一个特定的词。我用边界来找到一个。考虑以下示例。

当我在我的 unix 服务器上运行这段代码时,它给了我以下错误。

java.util.regex.PatternSyntaxException:索引 5 附近的非法/不受支持的转义序列
\bTMTH_EQUIP_IDLE_REASON\b。
^
在 java.util.regex.Pattern.error(Pattern.java:1713)
在 java.util.regex.Pattern.escape(Pattern.java:2177)
在 java.util.regex.Pattern.atom(Pattern.java: 1952)
在 java.util.regex.Pattern.sequence(Pattern.java:1834)
在 java.util.regex.Pattern.expr(Pattern.java:1752)
在 java.util.regex.Pattern.compile(Pattern.java :1460)
在 java.util.regex.Pattern.(Pattern.java:1133)
在 java.util.regex.Pattern.compile(Pattern.java:823)
在 java.util.regex.Pattern.matches(Pattern.java :928)
在 java.lang.String.matches(String.java:2091)
在 com.acc.directory.scanner.SDScanner.main(SDScanner.java:309)

我尝试替换\\b为,\\\\b 但没有用。它返回假。谁能帮我解决这个问题。我到处搜索,但只给了我一个可以替换\\b的答案,\\\\b但它对我不起作用。

PS。这只是一个显示我尝试过的内容和我想要的输出的虚拟示例。我用真实数据运行我的代码,错误来自该输出。

0 投票
2 回答
329 浏览

regex - 如何创建一个使用自定义单词边界获取 N 个单词的 RegEx 模式?

我需要一个正则表达式模式,它将使用自定义单词边界返回前 N 个单词,该边界是正常的正则表达式空格 (\s) 加上标点符号.,;:!?-*_

编辑#1:感谢您的所有评论。

要清楚:

  1. 我想设置作为单词分隔符的字符
  2. 让我们称之为“分隔符集”或 strDelimiters
  3. strDelimiters = ".,;:!?-*_"
  4. nNumWordsToFind = 5
  5. 单词被定义为不包含 strDelimiters 中任何字符的任何连续文本
  6. RegEx 单词边界是包含 strDelimiters 中的一个或多个字符的任何连续文本
  7. 我想构建 RegEx 模式以使用 strDelimiters 获取/返回第一个 nNumWordsToFind。

编辑#2:2015 年 8 月 8 日星期六,美国中部时间上午 12:49

@maraca 肯定回答了我最初所说的问题。但我真正需要的是返回字数≤nNumWordsToFind。因此,如果源文本只有 3 个单词,但我的 RegEx 要求 4 个单词,我需要它返回 3 个单词。如果 nNumWordsToFind > 源文本中的实际单词数,则 maraca 提供的答案失败。

例如:

它会将其视为 10 个单词。如果我想要前 5 个单词,它将返回:

我使用正常的 \s 空格有这个模式,它有效,但不完全是我需要的:

其中<NumWordsOut>是要返回的单词数。

我也找到了这个词边界模式,但我不知道如何使用它:

检测 ASCII 字母和非字母之间的边缘的“真实单词边界”。

但是,我希望我的话也允许数字。

IAC,我无法使用上述自定义单词边界模式返回文本的前 N ​​个单词。

顺便说一句,我将在Keyboard Maestro宏中使用它。

任何人都可以帮忙吗?TIA。

0 投票
1 回答
1535 浏览

regex - 正则表达式单词边界中包含连字符/破折号 \b

简单的说:

(没有匹配是正确的)

我不希望它像第二个表达式那样匹配,请告诉我如何实现这一点,谢谢。

0 投票
2 回答
1062 浏览

regex - Notepad ++如何查找包含单个单词的行?

在下面的:

如何创建一个正则表达式来查找包含单个单词的行,如 3、6 和 9 中的行?并且可以选择在每个开头插入换行符?

0 投票
1 回答
2340 浏览

javascript - 带有单词边界“\b”的正则表达式中的美元符号“\$”(PHP / JavaScript)

我知道在正则表达式(此处:PHP 和 JavaScript)中涉及美元符号“$”的问题之前已经讨论过很多次:是的,我知道我需要在它前面添加一个反斜杠“\”(取决于字符串处理甚至两个),但匹配美元符号的正确方法是“\$”。...去过那里,做到了,工作正常。


但这是我的新问题:用“\b”标记的单词边界旁边的美元符号“\$”。... 我的以下示例可以很容易地在 regexpal.com 上复制。

让我们从以下文本开始搜索:

50 美元

50 美元

50 美元

50 美元

我的正则表达式应该找到“USD”、“Dollar”或“$”。很简单:让我们试试

(美元|美元|\$)

成功:它找到“$”、“USD”和两个“Dollar”出现,包括“Dollars”。

但是让我们尝试通过在多项选择之后添加单词边界来跳过“美元”:

(美元|美元|\$)\b

这很麻烦:“USD”被匹配,“Dollar”被匹配,“Dollars”被拒绝......但是单个,正确反斜杠(或转义)的“$”也被拒绝,尽管这在前一秒钟有效.

它与括号内的多项选择无关:尝试只是

\$

对比

\$\b

也是一样的:第一个匹配美元符号,第二个不匹配。


另一个发现:

(美元|美元|\$) \b

在“)”和“\b”之间有一个空白“”实际上可以工作。但是这种解决方法可能并非在所有情况下都可行(如果应该有非空白单词边界)。


当涉及单词边界时,似乎拒绝找到转义的美元符号。

我很想听听你解开这个谜团的建议。- 提前非常感谢!

0 投票
1 回答
670 浏览

regex - R中正则表达式中标点符号的字边界处理

虽然用 gsub 替换字符串中的两个点回答了有关替换标点符号(如“.”)的问题,但它似乎不适用于单词边界。例如,

#没有被替换。如何解决这个问题?

请注意,不应替换多个#。例如,

'##' 不应替换为 'hash' 或 'hashhash'。

# 后面或前面的任何图形字符都不应被替换(例如,'.#' 不应被替换)

0 投票
1 回答
2076 浏览

regex - 如何在 go 中将单词边界 (\b) 与 regexp.MatchString() 一起使用

我正在使用函数 regexp.matchString() 将正则表达式模式与我的字符串匹配。我必须使用单词边界才能找到完全匹配。例如,我想匹配“compute”而不是“computer”。问题是我的字符串将同时具有“计算”和“计算机”。所以我想使用单词边界。我尝试在几个在线 go-regex 测试器中使用 \b 并且它有效。但是, \b 似乎不适用于 regexp.matchString() 函数。有谁知道是否有 \b 的替代品?或者我怎样才能得到预期的结果?我的代码

当我使用 \b 时,此函数返回 false。请帮忙