问题标签 [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.
php - PHP 正则表达式字边界排除下划线_
我正在使用正则表达式单词边界\ b,并且我正在尝试匹配foo
以下内容$sentence
,但结果不是我需要的,这underscore
正在杀死我,我希望下划线成为单词边界,就像连字符或空格一样:
预期的:
我的代码:
regex - 正则表达式:单词边界
我必须搜索包含大写字母或数字的单词。
我使用\b[^ ]*[A-Z0-9]+[^ ]*\b
, 但是不是[^ ]
我想使用[^\b]
, 但这会选择所有短语...
This
is
Some
text, that has
s0me
nUm8ers
, like
Boeing-380
or
RNA-78
.
That
is
GREAT!
regex - 正则表达式负前瞻和单词边界从捕获组中删除第一个字符
我试图捕获字符串中的每个单词,除了“and”。我还想捕捉像 *this* 这样被星号包围的单词。我使用的正则表达式命令大部分都有效,但是当它捕获带有星号的单词时,它会遗漏第一个单词(因此 *this* 只会捕获 this* )。这是我正在使用的正则表达式:
当我删除最后一个单词边界时,它将捕获所有 *this* 但不会遗漏任何 'and' 。
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。这只是一个显示我尝试过的内容和我想要的输出的虚拟示例。我用真实数据运行我的代码,错误来自该输出。
regex - 如何创建一个使用自定义单词边界获取 N 个单词的 RegEx 模式?
我需要一个正则表达式模式,它将使用自定义单词边界返回前 N 个单词,该边界是正常的正则表达式空格 (\s) 加上标点符号.,;:!?-*_
编辑#1:感谢您的所有评论。
要清楚:
- 我想设置作为单词分隔符的字符
- 让我们称之为“分隔符集”或 strDelimiters
strDelimiters = ".,;:!?-*_"
nNumWordsToFind = 5
- 单词被定义为不包含 strDelimiters 中任何字符的任何连续文本
- RegEx 单词边界是包含 strDelimiters 中的一个或多个字符的任何连续文本
- 我想构建 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。
regex - 正则表达式单词边界中包含连字符/破折号 \b
简单的说:
(没有匹配是正确的)
我不希望它像第二个表达式那样匹配,请告诉我如何实现这一点,谢谢。
regex - Notepad ++如何查找包含单个单词的行?
在下面的:
如何创建一个正则表达式来查找包含单个单词的行,如 3、6 和 9 中的行?并且可以选择在每个开头插入换行符?
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”之间有一个空白“”实际上可以工作。但是这种解决方法可能并非在所有情况下都可行(如果应该有非空白单词边界)。
当涉及单词边界时,似乎拒绝找到转义的美元符号。
我很想听听你解开这个谜团的建议。- 提前非常感谢!
regex - R中正则表达式中标点符号的字边界处理
虽然用 gsub 替换字符串中的两个点回答了有关替换标点符号(如“.”)的问题,但它似乎不适用于单词边界。例如,
#
没有被替换。如何解决这个问题?
请注意,不应替换多个#。例如,
'##' 不应替换为 'hash' 或 'hashhash'。
# 后面或前面的任何图形字符都不应被替换(例如,'.#' 不应被替换)
regex - 如何在 go 中将单词边界 (\b) 与 regexp.MatchString() 一起使用
我正在使用函数 regexp.matchString() 将正则表达式模式与我的字符串匹配。我必须使用单词边界才能找到完全匹配。例如,我想匹配“compute”而不是“computer”。问题是我的字符串将同时具有“计算”和“计算机”。所以我想使用单词边界。我尝试在几个在线 go-regex 测试器中使用 \b 并且它有效。但是, \b 似乎不适用于 regexp.matchString() 函数。有谁知道是否有 \b 的替代品?或者我怎样才能得到预期的结果?我的代码
当我使用 \b 时,此函数返回 false。请帮忙