Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式,用于在代码中查找非中断字符串名称,然后将其拆分以进行SQL查询_Sql_Regex - Fatal编程技术网

正则表达式,用于在代码中查找非中断字符串名称,然后将其拆分以进行SQL查询

正则表达式,用于在代码中查找非中断字符串名称,然后将其拆分以进行SQL查询,sql,regex,Sql,Regex,我正在尝试开发一个正则表达式,用于在我正在处理的几个代码文件中查找大小写字符串,以便将它们分解为单独的单词,以便在SQL查询中使用。我有字符串的形式 EmailAddress FirstName MyNameIs select FirstName as 'First Name', MyNameIs as 'My Name Is' from MyTables 我希望他们像这样 Email Address First Name My Name Is 我目前拥有的一个SQL查询示例是 selec

我正在尝试开发一个正则表达式,用于在我正在处理的几个代码文件中查找大小写字符串,以便将它们分解为单独的单词,以便在SQL查询中使用。我有字符串的形式

EmailAddress
FirstName
MyNameIs
select FirstName as 'First Name', MyNameIs as 'My Name Is' from MyTables
我希望他们像这样

Email Address
First Name
My Name Is
我目前拥有的一个SQL查询示例是

select FirstName, MyNameIs from MyTables
我需要表格中的查询

EmailAddress
FirstName
MyNameIs
select FirstName as 'First Name', MyNameIs as 'My Name Is' from MyTables
任何时候出现一个新的大写字母,这应该是一个新的分组,我可以从匹配的字符串中选择。我目前有以下正则表达式

([A-Z][a-z]+)+
这与我上面所示的情况相匹配,但是当我想要执行替换时,我需要定义组。目前我已经试过了

(([A-Z])([a-z]+))+

哪种工作。它将从“EmailAddress”中选择“Address”作为第一个分组,而不是我所期望的“Email”。毫无疑问,我对这里有些误解,所以非常感谢您的帮助

您可以使用正则表达式找到使用PascalCase或camelCase的单词

\w+(?<=[a-z])(?=[A-Z])\w+

根据我收集的信息,您希望列别名中有空格。我不建议将这种做法作为一种习惯,因为它会使在其他SQL中引用这些列变得复杂。使用下划线而不是空格,所以你会得到
名字
,等等。我确实想要空格,但我不希望使用下划线。SQL查询中的列名用于在html表中显示,因此使用该空间可以让用户更好地了解情况。我明白你的观点,这是一个很好的观点,尽管我认为我在这方面是安全的,通过查看代码库。将进一步调查。如果需要,您可以始终在网页中用空格替换下划线。True。这是一个值得考虑的问题。肖恩·斯图尔特:+1,这就是我要建议的。
select FirstName as 'First Name', MyNameIs as 'My Name Is' from MyTables as 'My Tables'