正则表达式:单词边界,但仅适用于空格,行的开头或行尾

Mar*_*cin 9 regex

我正在寻找一些字边界来涵盖这3个案例:

  1. 字符串的开头
  2. 字符串的结尾
  3. 白色空间

是否有类似的东西,因为\ b也涵盖 - ,/等?

想通过上述内容替换此模式中的\ b:

(\b\d*\sx\s|\b\d*x|\b)
Run Code Online (Sandbox Code Playgroud)

小智 22

尝试更换\b(?:^|\s|$)

这意味着

(
  ?: don't consider this group a match
  ^   match beginning of line
  |   or
  \s  match whitespace
  |   or
  $   match end of line
)

适用于Python和JavaScript.


Tim*_*ker 10

好的,所以你真正的问题是:

我如何匹配一个单位,可选地前面有一个数量,但只有在比赛前没有任何东西或空格?

使用

 (?<!\S)\b(?:\d+\s*x\s*)?\d+(?:\.\d+)?\s*ml\b
Run Code Online (Sandbox Code Playgroud)

说明

(?<!\S):断言在比赛前不可能匹配非空格字符.

\b:匹配单词边界

(?:\d+\s*x\s*)?:可选择匹配量词(仅限整数)

\d+(?:\.\d+)?:匹配一个数字(小数可选)

\s*ml\b:匹配ml,可选地前面有空格.

  • 好的,改变正则表达式以适应那个.你应该清楚地知道并说明你的要求 - 你之前没有说过任何关于花车的事情...... (2认同)