- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用正则表达式在以 mySqlQueryToArray(一个查询 SQL 数据库的函数)开头的行中的任何位置查找单引号(这样我就可以将它们全部变成双引号)。我在 Sublime Text 3 中做正则表达式,我很确定它使用 Perl Regex。我想让我的正则表达式与一行中的每个单引号匹配,例如我可能有一行:
mySqlQueryToArray($con, "SELECT * FROM Template WHERE Name='$name'");
我希望正则表达式匹配该行中围绕 $name
的两个引号但该行中没有其他字符。我一直在尝试使用 (?<=mySqlQueryToArray.*)'
但它告诉我后视断言是无效的。我也试过(?<=mySqlQueryToArray)(?<=.*)'
但这也是无效的。有人可以指导我使用能够满足我需要的正则表达式吗?
最佳答案
要在以您的关键字开头的行中查找任意数量的单引号,您可以使用 \G
anchor (“最后一场比赛结束”)替换为:
(^\h*mySqlQueryToArray|(?!^)\G)([^\n\r']*)'
与 \1\2<replacement>
:见demo here .
解释
( ^\h*mySqlQueryToArray # beginning of line: check the keyword is here
| (?!^)\G ) # if not at the BOL, check we did match sth on this line
( [^\n\r']* ) ' # capture everything until the next single quote
一般的想法是用 ([^\n\r']*)'
匹配下一个单引号之前的所有内容。为了将其替换为 \2<replacement>
,但是只有在这一切都是:
^mySqlQueryToArray
) 之后,或者(?!^)\G
):在这种情况下,我们知道我们有关键字并且在相关行上。 \h*
考虑到任何开始的缩进,正如 Xælias 所建议的那样(\h
是任何类型的水平空白的快捷方式)。
关于regex - 在以 "mySqlQueryToArray"开头的行末尾找到单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329624/
我正在尝试使用正则表达式在以 mySqlQueryToArray(一个查询 SQL 数据库的函数)开头的行中的任何位置查找单引号(这样我就可以将它们全部变成双引号)。我在 Sublime Text 3
我是一名优秀的程序员,十分优秀!