javascript - 正则表达式匹配美元,前面没有反斜杠

标签 javascript regex google-apps-script escaping regex-negation

我只想匹配前面没有反斜杠的美元符号,如下所示:

$not\$yes $  
^.........^

到目前为止,我有 [^\\]\$,但这不匹配一行开头的任何美元。美元可能是文档中的第一个符号,因此匹配换行符将不起作用。我该如何匹配?到目前为止,我的正则表达式是否正确?

最佳答案

你可以使用 an alternation^ anchor如果 $ 字符是字符串中的第一个字符,或者它后面的字符不是反斜杠,则为了按字面匹配该字符。

/(?:^|[^\\])\$/

说明:

  • (?: - 用于对交替进行分组的 non-capturing group 的开始。
  • ^|[^\\] - Alternation使用 ^ anchor 匹配字符串的开头匹配一个非\字符
  • ) - 关闭用于分组的非捕获组 ^|[^\\]
  • \$ - $ 字面意思

换句话说,^ anchor 将匹配字符串的开头;而 [^\\] 将匹配反斜杠以外的任何内容。管道 | 充当“或”运算符,匹配字符串的开头或反斜杠以外的任何内容(即 ^|[^\\])。

因此在您提供的字符串中,第一个/最后一个 $ 字符将被匹配。

关于javascript - 正则表达式匹配美元,前面没有反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004800/

相关文章:

正则表达式导致无限挂起

javascript - Google Apps 脚本 - HTML 服务 - "wait"用于客户端表单提交

Javascript - 使用 createElement 调用 js 文件时无法识别函数

javascript - node/express - 如何将用户输入呈现到页面?

javascript - 如何使用 webgl/two.js 创建带有选择的基本菜单栏?

google-apps-script - 返回二维数组的特定行并写入 Range

google-apps-script - 如何使用 Google App Script 检测移动用户?

java - Java Applet 连接我们的服务器调用 PHP 文件时出现问题

Java - 模式匹配奇怪的行为

python - 将自定义格式数据加载到 splunk 中